[БП 3.0] [Расширение] Исправление регистра накопления "Реализованные товары и услуги комитентов (принципалов)"
Задачи пользователя - Корректировка данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Исправление регистра реализованные товары комитента.
Отчет комитенту о продажах прекрасно заполняется по кнопке "Заполнить реализованными по договору", но при проведении движений по регистру реализованные товары комитентов нет, если документы реализации были проведены с датой конец месяца и временем 23:59:59 (дата и время проведения отчета такое же)
Причина - в процедуре ПолучитьОстаткиРеализованныеТоварыКомитентов в параметре запроса «Период» используется Дата документа, и реализации с временем 23:59:59 в остатки не попадают (строка модуля менеджера документа в БП 3.0.54.13 - 1814):
Запрос.УстановитьПараметр("Период", Реквизиты.Период);
Если написать там:
Запрос.УстановитьПараметр("Период", Новый Граница(Реквизиты.Период, ВидГраницы.Включая));
и документ проводится правильно...
Заполнение ТЧ по договору выбирает ВСЕ реализации и отчеты о розничных продажах. Они попадают в ТЧ, включая последние за конец месяца с временем 23:59:59, а при проведении эти документы не попадают в движения регистра "Реализованный товары и услуги комитентов (принципалов)".
Причём, не зная причину найти, косяк проблематично, т.к. проявляется он в следующем месяце - сумма документа показана правильная, проводок документ не делает, и бухгалтер видит ошибку только при заполнении ТЧ в следующем месяце, куда попадают "не закрытые" в регистре документы прошлого месяца!
Проблемы собственно особой и нет – не проводим комиссионные товары и агентские услуги датой формирования отчета комитенту с временем 23:59:59 и всё будет в шоколаде. А вот если период закрыт, и бухгалтер каждый месяц, не мудрствуя лукаво, просто удаляет «ненужные» строки, тогда исправим ошибку закрытием регистра с помощью этой обработки, которая создаст ручную операцию расхода по регистру накопления «Реализованные товары и услуги комитентов (принципалов)»:
А чтобы не допускать этот косяк в будущем, можно исправить параметр в конфигурации, или использовать прилагаемое расширение, в котором в состав расширения включен один документ «Отчет комитенту о продажах», для которого в модуле менеджера расширения введена одна процедура «вместо» штатной
&Вместо("ПолучитьОстаткиРеализованныеТоварыКомитентов")
Функция _еаю_ПолучитьОстаткиРеализованныеТоварыКомитентов(СтруктураПараметров)
Реквизиты = СтруктураПараметров.Реквизиты[0];
РеализованныеТоварыКомитентов = СтруктураПараметров.ТоварыКомитента;
Блокировка = Новый БлокировкаДанных;
ЭлементБлокировки = Блокировка.Добавить("РегистрНакопления.РеализованныеТоварыКомитентов");
ЭлементБлокировки.УстановитьЗначение("Организация", Реквизиты.Организация);
ЭлементБлокировки.УстановитьЗначение("Период", Новый Диапазон(, Реквизиты.Период));
ЭлементБлокировки.УстановитьЗначение("Контрагент", Реквизиты.Контрагент);
ЭлементБлокировки.УстановитьЗначение("ДоговорКонтрагента", Реквизиты.ДоговорКонтрагента);
ЭлементБлокировки.ИсточникДанных = РеализованныеТоварыКомитентов;
ЭлементБлокировки.ИспользоватьИзИсточникаДанных("Номенклатура", "Номенклатура");
Блокировка.Заблокировать();
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Период", Новый Граница(Реквизиты.Период, ВидГраницы.Включая));//ЕАЮ--- было Реквизиты.Период);
Замечу сразу, что не нравится мне директива «Вместо» в расширениях, но это только один из возможных вариантов исправления не снимая конфигурацию с поддержки, для примера, так сказать. В тех же расширениях можно сделать установку времени реализации меньше 23:59:59, или нарисовать внешнюю обработку изменения времени уже существующих документов…да мало ли что ещё можно придумать?
Ошибке уже не один год, писал сюда https://partners.v8.1c.ru/forum/topic/1498197 ещё в июне 16 года, но ничё не изменилось…
Вступайте в нашу телеграмм-группу Инфостарт