Пытаюсь дополнить документ проводками по регистру сведений ОперацииСПрослеживаемымиТоварами и регистру накопления ПрослеживаемыеТовары.
В модуле объекта
Далее отладчик переходим в модуть менеджера дорабатываемого документа
Затем переходим в общий модуль ПрослеживаемостьБП
В итоге... когда отладчик в общем модуле ПрослеживаемостьБП в ригистрах ОперацииСПрослеживаемымиТоварами и Прослеживаемые товары движения есть. Когда возвращаемся в документ движения пропадают. По завершении операции проведения движения только по хозрасчетному регистру.
Что не так?
В модуле объекта
УсловияПрослеживаемости = Новый Структура;
УсловияПрослеживаемости.Вставить("ВедетсяУчетПрослеживаемыхТоваров", ПолучитьФункциональнуюОпцию("ВестиУчетПрослеживаемыхТоваров")
И ПрослеживаемостьБРУ.ВедетсяУчетПрослеживаемыхТоваров(СтруктураШапкиДокумента.Дата));
Если УсловияПрослеживаемости.ВедетсяУчетПрослеживаемыхТоваров Тогда
Документы.ОИТ_ТребованиеНакладнаяПоЛимиткамЗаПериод.ДвиженияПоРегистрамПрослеживаемыхТоваров(СтруктураШапкиДокумента, ТаблицаМатериалов);
КонецЕсли;
ПоказатьДалее отладчик переходим в модуть менеджера дорабатываемого документа
Процедура ДвиженияПоРегистрамПрослеживаемыхТоваров(СтруктураШапкиДокумента, ТаблицаСумм = Неопределено) Экспорт
УчетнаяПолитикаРегл = ОбщегоНазначения.ПолучитьПараметрыУчетнойПолитики(СтруктураШапкиДокумента.Дата, ЛОЖЬ, СтруктураШапкиДокумента.Организация, , Истина);
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.УстановитьПараметр("Ссылка", СтруктураШапкиДокумента.Ссылка);
НомераТаблиц = Новый Структура;
ПараметрыПроведения = Новый Структура;
УсловияПрослеживаемости = Новый Структура;
УсловияПрослеживаемости.Вставить("ВедетсяУчетПрослеживаемыхТоваров", ПолучитьФункциональнуюОпцию("ВестиУчетПрослеживаемыхТоваров")
И ПрослеживаемостьБРУ.ВедетсяУчетПрослеживаемыхТоваров(СтруктураШапкиДокумента.Дата));
Запрос.Текст = Документы.ОИТ_ТребованиеНакладнаяПоЛимиткам.ТекстЗапросаПрослеживаемыеТовары(НомераТаблиц, ПараметрыПроведения, УсловияПрослеживаемости);
Если НЕ ПустаяСтрока(Запрос.Текст) Тогда
Результат = Запрос.ВыполнитьПакет();
Для Каждого НомерТаблицы Из НомераТаблиц Цикл
ПараметрыПроведения.Вставить(НомерТаблицы.Ключ, Результат[НомерТаблицы.Значение].Выгрузить());
КонецЦикла;
КонецЕсли;
Если УсловияПрослеживаемости.ВедетсяУчетПрослеживаемыхТоваров Тогда
ТаблицаРеквизиты = ПрослеживаемостьБП.СтруктуруВТаблицуЗначений(СтруктураШапкиДокумента);
Если НЕ ТаблицаСумм = Неопределено Тогда
Для каждого Строка Из ПараметрыПроведения.ПрослеживаемыеОперации Цикл
СтрокаССуммой = ТаблицаСумм.Найти(Строка.ИдентификаторСтроки, "ИдСтрокиПрослеживаемогоТовара");
Если ЗначениеЗаполнено(СтрокаССуммой) Тогда
Строка.СуммаБезНДС = СтрокаССуммой.Стоимость;
КонецЕсли;
КонецЦикла;
ПараметрыПроведения.ПрослеживаемыеОперации.Свернуть("ДатаДокумента, ДокументОперации, КодОперации, Контрагент,
|Номенклатура, НомерДокумента, ОтражениеВОтчетности, ПериодОперации, РНПТ, ТипДокументаВПрослеживаемости",
"СуммаБезНДС, Количество, КоличествоПрослеживаемости");
КонецЕсли;
ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
ПараметрыПроведения.ПрослеживаемыеТовары,
ПараметрыПроведения.ПрослеживаемыеОперации,
ТаблицаРеквизиты,
СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);
КонецЕсли;
КонецПроцедуры
ПоказатьЗатем переходим в общий модуль ПрослеживаемостьБП
Процедура СформироватьДвиженияРеализацияТоваров(ТаблицаТовары, ТаблицаОперации, ТаблицаРеквизиты, Движения) Экспорт
Если Не ЗначениеЗаполнено(ТаблицаРеквизиты) Тогда
Возврат;
КонецЕсли;
ОбщиеПараметры = ПодготовитьОбщиеПараметры(ТаблицаРеквизиты);
Реквизиты = ОбщиеПараметры.Реквизиты[0];
СформироватьДвиженияПрослеживаемыхТоваров(ТаблицаТовары, Реквизиты, Движения, Истина);
СформироватьДвиженияОперацииСПрослеживаемымиТоварами(ТаблицаОперации, Реквизиты, Движения, ТаблицаРеквизиты);
КонецПроцедуры
Процедура СформироватьДвиженияОперацииСПрослеживаемымиТоварами(ТаблицаОперации, Реквизиты, Движения, ТаблицаРеквизиты = Неопределено) Экспорт
Если Не ЗначениеЗаполнено(ТаблицаОперации) Тогда
Возврат;
КонецЕсли;
Параметры = ПодготовитьПараметрыОперацииСПрослеживаемымиТоварами(ТаблицаОперации);
Для Каждого СтрокаТаблицы Из Параметры.Операции Цикл
Запись = Движения.ОперацииСПрослеживаемымиТоварами.Добавить();
Запись.Период = Реквизиты.Дата;
Если ТаблицаРеквизиты <> Неопределено Тогда
Если ТаблицаРеквизиты.Колонки.Найти("ВалютаДокумента") <> Неопределено
И ТаблицаРеквизиты.Колонки.Найти("ВалютаРегламентированногоУчета") <> Неопределено
И ТаблицаРеквизиты.Колонки.Найти("КурсДокумента") <> Неопределено
И ТаблицаРеквизиты.Колонки.Найти("КратностьДокумента") <> Неопределено Тогда
Если НЕ ТаблицаРеквизиты[0].ВалютаДокумента = ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета Тогда
Данные = МодульВалютногоУчета.ПолучитьКурсВалюты(ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета, ТаблицаРеквизиты[0].Дата);
СтрокаТаблицы.СуммаБезНДС = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаТаблицы.СуммаБезНДС, ТаблицаРеквизиты[0].ВалютаДокумента,
ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета,
ТаблицаРеквизиты[0].КурсДокумента,
Данные.Курс,
ТаблицаРеквизиты[0].КратностьДокумента,
Данные.Кратность);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ЗаполнитьЗначенияСвойств(Запись, Реквизиты);
ЗаполнитьЗначенияСвойств(Запись, СтрокаТаблицы);
Если СтрокаТаблицы.ОтражениеВОтчетности <> Перечисления.ПорядокОтраженияВОтчетностиПоПрослеживаемости.ОтчетОбОперациях Тогда
Запись.СуммаБезНДС = Окр(Запись.СуммаБезНДС, 0);
КонецЕсли;
КонецЦикла;
Если ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.СписаниеТоваров")
//ОИТ_Савина Прослеживмость 07.2022г. +
ИЛИ ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.ОИТ_ТребованиеНакладнаяПоЛимиткамЗаПериод")
//ОИТ_Савина Прослеживмость 07.2022г. -
ИЛИ ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.ТребованиеНакладная") Тогда
// Движения.ОперацииСПрослеживаемымиТоварами.Записать(ИСТИНА);
Движения.ОперацииСПрослеживаемымиТоварами.Записывать = Истина;
Иначе
Движения.ОперацииСПрослеживаемымиТоварами.Записывать = Истина;
КонецЕсли;
КонецПроцедуры
Процедура СформироватьДвиженияОперацииСПрослеживаемымиТоварами(ТаблицаОперации, Реквизиты, Движения, ТаблицаРеквизиты = Неопределено) Экспорт
Если Не ЗначениеЗаполнено(ТаблицаОперации) Тогда
Возврат;
КонецЕсли;
Параметры = ПодготовитьПараметрыОперацииСПрослеживаемымиТоварами(ТаблицаОперации);
Для Каждого СтрокаТаблицы Из Параметры.Операции Цикл
Запись = Движения.ОперацииСПрослеживаемымиТоварами.Добавить();
Запись.Период = Реквизиты.Дата;
Если ТаблицаРеквизиты <> Неопределено Тогда
Если ТаблицаРеквизиты.Колонки.Найти("ВалютаДокумента") <> Неопределено
И ТаблицаРеквизиты.Колонки.Найти("ВалютаРегламентированногоУчета") <> Неопределено
И ТаблицаРеквизиты.Колонки.Найти("КурсДокумента") <> Неопределено
И ТаблицаРеквизиты.Колонки.Найти("КратностьДокумента") <> Неопределено Тогда
Если НЕ ТаблицаРеквизиты[0].ВалютаДокумента = ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета Тогда
Данные = МодульВалютногоУчета.ПолучитьКурсВалюты(ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета, ТаблицаРеквизиты[0].Дата);
СтрокаТаблицы.СуммаБезНДС = МодульВалютногоУчета.ПересчитатьИзВалютыВВалюту(СтрокаТаблицы.СуммаБезНДС, ТаблицаРеквизиты[0].ВалютаДокумента,
ТаблицаРеквизиты[0].ВалютаРегламентированногоУчета,
ТаблицаРеквизиты[0].КурсДокумента,
Данные.Курс,
ТаблицаРеквизиты[0].КратностьДокумента,
Данные.Кратность);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ЗаполнитьЗначенияСвойств(Запись, Реквизиты);
ЗаполнитьЗначенияСвойств(Запись, СтрокаТаблицы);
Если СтрокаТаблицы.ОтражениеВОтчетности <> Перечисления.ПорядокОтраженияВОтчетностиПоПрослеживаемости.ОтчетОбОперациях Тогда
Запись.СуммаБезНДС = Окр(Запись.СуммаБезНДС, 0);
КонецЕсли;
КонецЦикла;
Если ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.СписаниеТоваров")
//ОИТ_Савина Прослеживмость 07.2022г. +
ИЛИ ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.ОИТ_ТребованиеНакладнаяПоЛимиткамЗаПериод")
//ОИТ_Савина Прослеживмость 07.2022г. -
ИЛИ ТипЗнч(Реквизиты.Ссылка) = Тип("ДокументСсылка.ТребованиеНакладная") Тогда
// Движения.ОперацииСПрослеживаемымиТоварами.Записать(ИСТИНА);
Движения.ОперацииСПрослеживаемымиТоварами.Записывать = Истина;
Иначе
Движения.ОперацииСПрослеживаемымиТоварами.Записывать = Истина;
КонецЕсли;
КонецПроцедуры
ПоказатьВ итоге... когда отладчик в общем модуле ПрослеживаемостьБП в ригистрах ОперацииСПрослеживаемымиТоварами и Прослеживаемые товары движения есть. Когда возвращаемся в документ движения пропадают. По завершении операции проведения движения только по хозрасчетному регистру.
Что не так?
По теме из базы знаний
- Заполнение документа «Корректировка записей регистров»
- Разукрупнение (разделение, дробление) и частичная ликвидация основных средств
- Исправление пустых значений субконто (Null, Неопределено) в проводках, возникающих при изменении настройки видов субконто на счете
- Регистры бухгалтерии. Настройки, субконто и движения с субконто
- Каждый месяц находите расхождения в итогах регистров? Воспроизведем и поправим ошибку платформы
Найденные решения
ошибка скорее всего здесь
СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);- вы создаете НОВЫЙ объект с новым набором движений!!!
попробуйте через свою структуру передать как раз ссылку на движения ТЕКУЩЕГО документа объекта
что бы такой код был
ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
ПараметрыПроведения.ПрослеживаемыеТовары,
ПараметрыПроведения.ПрослеживаемыеОперации,
ТаблицаРеквизиты,
СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);
СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);- вы создаете НОВЫЙ объект с новым набором движений!!!
попробуйте через свою структуру передать как раз ссылку на движения ТЕКУЩЕГО документа объекта
что бы такой код был
ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
ПараметрыПроведения.ПрослеживаемыеТовары,
ПараметрыПроведения.ПрослеживаемыеОперации,
ТаблицаРеквизиты,
СтруктураШапкиДокумента.Движения);
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
ошибка скорее всего здесь
СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);- вы создаете НОВЫЙ объект с новым набором движений!!!
попробуйте через свою структуру передать как раз ссылку на движения ТЕКУЩЕГО документа объекта
что бы такой код был
ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
ПараметрыПроведения.ПрослеживаемыеТовары,
ПараметрыПроведения.ПрослеживаемыеОперации,
ТаблицаРеквизиты,
СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);
СтруктураШапкиДокумента.Ссылка.ПолучитьОбъект().Движения);- вы создаете НОВЫЙ объект с новым набором движений!!!
попробуйте через свою структуру передать как раз ссылку на движения ТЕКУЩЕГО документа объекта
что бы такой код был
ПрослеживаемостьБП.СформироватьДвиженияРеализацияТоваров(
ПараметрыПроведения.ПрослеживаемыеТовары,
ПараметрыПроведения.ПрослеживаемыеОперации,
ТаблицаРеквизиты,
СтруктураШапкиДокумента.Движения);
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот