После замены дублей номенклатуры пропала аналитика учета номенклатуры в регистрах
Добрый день,
УТ 11.2. После замены дублей заметили некоторый перекос в отчетности, а именно "Валовая прибыль предприятия" и "Ведомость по товарам организаций".
После недолгого изучения обнаружили, что в регистрах "ВыручкаИСебестоимостьПродаж" и "ТоварыОрганизаций" не заполнен реквизит "Аналитика учета номенклатуры".
Если отменить проведение - провести регистратор, все становится на места, просто перепроведение ничего не даёт.
Документов очень много, есть способ исправить это без перепроведения?
УТ 11.2. После замены дублей заметили некоторый перекос в отчетности, а именно "Валовая прибыль предприятия" и "Ведомость по товарам организаций".
После недолгого изучения обнаружили, что в регистрах "ВыручкаИСебестоимостьПродаж" и "ТоварыОрганизаций" не заполнен реквизит "Аналитика учета номенклатуры".
Если отменить проведение - провести регистратор, все становится на места, просто перепроведение ничего не даёт.
Документов очень много, есть способ исправить это без перепроведения?
По теме из базы знаний
Найденные решения
Универсального способа нет. Писать свою обработку, которая:
1. Проверяет наличие ключа аналитики номенклатуры по связке Номенклатура+Склад, если нет, то создает её.
2. Отбирает запросом все регистраторы, у которых измерение ключа аналитики номенклатуры пустое
3. Для каждого регистратора делаем примерно так:
P.S. Код на 100% не рабочий - только чтобы суть передать.
1. Проверяет наличие ключа аналитики номенклатуры по связке Номенклатура+Склад, если нет, то создает её.
2. Отбирает запросом все регистраторы, у которых измерение ключа аналитики номенклатуры пустое
Запрос = Новый Запрос("ВЫБРАТЬ
| ТоварыОрганизаций.Регистратор КАК Регистратор
|ИЗ
| РегистрНакопления.ТоварыОрганизаций КАК ТоварыОрганизаций
|ГДЕ
| (ТоварыОрганизаций.АналитикаУчетаНоменклатуры = ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаНоменклатуры.ПустаяСсылка)
| ИЛИ ТоварыОрганизаций.АналитикаУчетаНоменклатуры ЕСТЬ NULL)
|
|СГРУППИРОВАТЬ ПО
| ТоварыОрганизаций.Регистратор");
Результат = Запрос.Выполнить().Выбрать();
Показать3. Для каждого регистратора делаем примерно так:
Пока Результат.Следующий() Цикл
НаборЗаписейРН = РегистрыНакопления.ТоварыОрганизаций.СоздатьНаборЗаписей();
НаборЗаписейРН.Отбор.Регистратор.Использование = Истина;
НаборЗаписейРН.Отбор.Регистратор.Значение = Результат.Регистратор;
НаборЗаписейРН.Прочитать();
Для Каждого ЗаписьРН Из НаборЗаписейРН Цикл
ЗаписьРН.АналитикаУчетаНоменклатуры = Ссылка_на_ключ_аналитики_найденной_по_номенклатуре_и_складу;
КонецЦикла;
НаборЗаписейРН.Записать();
КонецЕсли;
КонецЦикла;
ПоказатьP.S. Код на 100% не рабочий - только чтобы суть передать.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Универсального способа нет. Писать свою обработку, которая:
1. Проверяет наличие ключа аналитики номенклатуры по связке Номенклатура+Склад, если нет, то создает её.
2. Отбирает запросом все регистраторы, у которых измерение ключа аналитики номенклатуры пустое
3. Для каждого регистратора делаем примерно так:
P.S. Код на 100% не рабочий - только чтобы суть передать.
1. Проверяет наличие ключа аналитики номенклатуры по связке Номенклатура+Склад, если нет, то создает её.
2. Отбирает запросом все регистраторы, у которых измерение ключа аналитики номенклатуры пустое
Запрос = Новый Запрос("ВЫБРАТЬ
| ТоварыОрганизаций.Регистратор КАК Регистратор
|ИЗ
| РегистрНакопления.ТоварыОрганизаций КАК ТоварыОрганизаций
|ГДЕ
| (ТоварыОрганизаций.АналитикаУчетаНоменклатуры = ЗНАЧЕНИЕ(Справочник.КлючиАналитикиУчетаНоменклатуры.ПустаяСсылка)
| ИЛИ ТоварыОрганизаций.АналитикаУчетаНоменклатуры ЕСТЬ NULL)
|
|СГРУППИРОВАТЬ ПО
| ТоварыОрганизаций.Регистратор");
Результат = Запрос.Выполнить().Выбрать();
Показать3. Для каждого регистратора делаем примерно так:
Пока Результат.Следующий() Цикл
НаборЗаписейРН = РегистрыНакопления.ТоварыОрганизаций.СоздатьНаборЗаписей();
НаборЗаписейРН.Отбор.Регистратор.Использование = Истина;
НаборЗаписейРН.Отбор.Регистратор.Значение = Результат.Регистратор;
НаборЗаписейРН.Прочитать();
Для Каждого ЗаписьРН Из НаборЗаписейРН Цикл
ЗаписьРН.АналитикаУчетаНоменклатуры = Ссылка_на_ключ_аналитики_найденной_по_номенклатуре_и_складу;
КонецЦикла;
НаборЗаписейРН.Записать();
КонецЕсли;
КонецЦикла;
ПоказатьP.S. Код на 100% не рабочий - только чтобы суть передать.
(2)
Это просто дополняет запись регистра ключей аналитики? Не очищает, а именно дописывает?
Пока Результат.Следующий() Цикл
НаборЗаписейРН = РегистрыНакопления.ТоварыОрганизаций.СоздатьНаборЗаписей();
НаборЗаписейРН.Отбор.Регистратор.Использование = Истина;
НаборЗаписейРН.Отбор.Регистратор.Значение = Результат.Ссылка;
НаборЗаписейРН.Прочитать();
Для Каждого ЗаписьРН Из НаборЗаписейРН Цикл
ЗаписьРН.АналитикаУчетаНоменклатуры = Ссылка_на_ключ_аналитики_наденной_по_номенклатуре_и_складу;
КонецЦикла;
НаборЗаписейРН = РегистрыНакопления.ТоварыОрганизаций.СоздатьНаборЗаписей();
НаборЗаписейРН.Отбор.Регистратор.Использование = Истина;
НаборЗаписейРН.Отбор.Регистратор.Значение = Результат.Ссылка;
НаборЗаписейРН.Прочитать();
Для Каждого ЗаписьРН Из НаборЗаписейРН Цикл
ЗаписьРН.АналитикаУчетаНоменклатуры = Ссылка_на_ключ_аналитики_наденной_по_номенклатуре_и_складу;
КонецЦикла;
Это просто дополняет запись регистра ключей аналитики? Не очищает, а именно дописывает?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот