15.12.2022 19:44
Shift
 
Случилось так, что пришлось разбираться со следующей ситуацией:
Настроен штатный обмен между 1С:Розница 2.3 (РТ далее) и 1С:Бухгалтерия предприятия 3.0 (БП далее).
Обе конфигурации стандартные, не абсолютно свежие, но Розница не шибко древняя, а БП хотя и прошлогодняя, но речь не о ней.
Суть в следующем: Несколько месяцев назад обновили РТ до актуальной на тот момент версии, и с тех пор, как говорят, не заполняется патент в ОРП в БП.
Документ проведен, спору нет. Но, если требуется корректировка, то реквизит (кстати, обязательный) почему-то пуст.
Учитывая то, что данная неприятность приключилась после обновления РТ, было решено исследовать правила обмена (кстати говоря, штатные).
При отладке обнаружилось, что код:
Код:
Процедура ПОД_Документ_ОтчетОРозничныхПродажах_Отправка_ПриОбработке(ДанныеИБ, ИспользованиеПКО, КомпонентыОбмена)
...

	СистемаНалогообложения = ПодключаемоеОборудованиеРТ.ПолучитьСистемуНалогообложения(,ДанныеИБ.Организация, ДанныеИБ.Магазин);
...
возвращает некорректное значение.
Проблема видимо кроется в том, что при обновлении в регистре сведений добавились новые реквизиты, которые заполнились значением NULL, которые в свою очередь, запрос не подразумевал. Но это решилось просто - редактирование записи в пользовательском режиме.
Ну а теперь самое главное, если не устали читать:
Цитата:
Функция ПолучитьСистемуНалогообложения(Дата = Неопределено,
Организация,
Магазин = Неопределено,
Склад = Неопределено,
ТоварнаяГруппа = Неопределено) Экспорт

Если НЕ ЗначениеЗаполнено(Организация) Тогда
Возврат Перечисления.ТипыСистемНалогообложенияККТ.ПустаяСсылка();
КонецЕсли;

Если НЕ ЗначениеЗаполнено(Дата) Тогда
Дата = ТекущаяДатаСеанса();
КонецЕсли;

Если ЗначениеЗаполнено(Склад) И НЕ ЗначениеЗаполнено(Магазин) Тогда
Магазин = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Склад, "Магазин");
КонецЕсли;
...
Это та самая функция, где некорректный запрос. Если обратите внимание, то при не указанной дате система налогообложения будет определятся на дату сеанса обмена, поскольку дата при обмене не указана явно. Т.е. если обмен будет выполнен условно 1 января 2023 года, то и система налогобложения будет получена на эту дату, а не дату документа, который по каким-то причинам снова попал в синхронизацию (тупо кто-то нажал "ОК").
Претензия не к функции, а к её использованию.
15.12.2022 20:21
baggio
 
Не расшатывайте лодку...
Вся 1с из такого сделано)...
Часовой пояс GMT +3, время: 10:40.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.