![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
![]()
Сообщение
#1
|
|||
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 14349 Регистрация: 12.10.2007 Из: Twilight Zone Пользователь №: 1 ![]() |
(с) Decker
Собственно сегодня обнаружил ошибку, которая присутствует во всех релизах конфигурации Торговля и Склад 7.7 вплоть до текущего 7.70.969, при использовании нескольких фирм и префиксов документов для некоторых из них. Возьмем для примера демонстрационную базу, которая ставится по-умолчанию вместе в новой конфигурацией. В базе определено несколько фирм, в том числе: 1. Торговый дом "Комплексный" (Магазин) - Префикс "СТ" 2. Торговый дом "Новый" (Офис) - Префикс "ТН" По-умолчанию для них выставлены префиксы документов СТ и ТН соответственно. Допустим для первой фирмы (Комплексный) нам не требуется использовать префикс номеров документов. Заходим в справочник фирмы и убираем его. Т.о. получаем, для ТД Комплексный префикс фирмы не используется, а для ТД Новый - префикс ТН. Далее создаем документ реализации от фирмы ТД "Новый". При выборе фирмы префикс документа автоматически меняется на ТН, как и должно быть. Сохраняем документ (табличную часть и прочие реквизиты можно не заполнять). Затем оформляем документ "Продажа собственной фирме" от ТД Комплексный к ТД Новый и заполняем чем-нибудь табличную часть, шапка документа должна выглядеть вот так: После нажатия кнопки "Выполнить" должно быть создано два документа: 1. Реализация товара ТД Комплексный -> ТД Новый. 2. Поступление товара ТД Комплексный -> ТД Новый. Причем согласно установленным нами префиксам первый документ (реализация, оформленный фирмой ТД Комплексный) должен быть без префикса, а второй документ (оформленной фирмой ТД Новый) должен иметь префикс ТН. Нажимаем кнопку выполнить и наблюдаем следующее: Оба документа оформились с префиксом ТН, хотя первый из них принадлежит абсолютно другой (!) фирме и должен быть без префикса. Ошибка кроется в процедуре СкопироватьРеквизитыШапки модуля формы документа быстрая продажа, а именно в строке: Код ДокКуда.УстановитьНовыйНомер(СокрЛП(Константа.ПрефиксИБ) + СокрЛП(Фирма.ЮрЛицо.ПрефиксНомеровДокументов)); Вместо этого там должно быть: Код ДокКуда.УстановитьНовыйНомер(СокрЛП(Константа.ПрефиксИБ) + ?(СокрЛП(Фирма.ЮрЛицо.ПрефиксНомеровДокументов)="","0",СокрЛП(Фирма.ЮрЛицо.ПрефиксНомеровДокументов))); Аналогичная ситуация возможна и в других местах конфигурации (документ "Продажа собственной фирме", вернее "Быстрая продажа" был рассмотрен в качестве примера), т.е. во всех процедурах где используется установка нового номера документа с использованием префикса через метод УстановитьНовыйНомер, а таких мест в конфигурации около 30. Их можно найти поиском по всем текстам по шаблону: Код .ПрефиксНомеровДокументов Ссылки на тему на других ресурсах: -------------------- |
||
|
|||
![]()
Сообщение
#2
|
|
![]() Администратор ![]() ![]() ![]() ![]() ![]() Группа: Главные администраторы Сообщений: 14349 Регистрация: 12.10.2007 Из: Twilight Zone Пользователь №: 1 ![]() |
Решение без внесения изменений в конфигурацию было предложено пользователем 1с2с с инфостарта:
Цитата эта "особенность" известна давно...
самое простое решение: не оставлять значение префикса пустым, а устанавливать в качестве него тот самый "0"..., что есть идентично по результату вашему варианту... -------------------- |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 15.5.2025, 17:42 | |