Вид субконто не определен 1с что это значит

Обновлено: 06.07.2024

В свое время в платформе была ошибка - после добавления субконто к счету платформа не производила рестутуризацию существующих проводок и в результате к ним не добавлялась строка с пустым значением нового субконто.

Внешне результат данной ошибки был виден в оборотке по счету. В группировке по данному субконто появлялось две пустые строки. Если выбирать запросом в консоли одна строка была пустым значением данного типа субконто а вторая NULL.

История "лечится" перепроведением или перезаписью движений.

Приведенный ниже запрос позволяет выявить такие ошибки

ВЫБРАТЬ
Хозрасчетный.Регистратор КАК Регистратор ,
Хозрасчетный.НомерСтроки КАК НомерСтроки ,
Хозрасчетный.СчетДт КАК Счет ,
Хозрасчетный.Сумма ,
Хозрасчетный.Организация ,
ЗНАЧЕНИЕ ( ВидДвиженияБухгалтерии.Дебет ) КАК ВидДвижения ,
"Д" КАК ВидДвиженияБуквой
ПОМЕСТИТЬ Движения
ИЗ
РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный

ВЫБРАТЬ
Хозрасчетный.Регистратор ,
Хозрасчетный.НомерСтроки ,
Хозрасчетный.СчетКт ,
Хозрасчетный.Сумма ,
Хозрасчетный.Организация ,
ЗНАЧЕНИЕ ( ВидДвиженияБухгалтерии.Кредит ),
"К"
ИЗ
РегистрБухгалтерии.Хозрасчетный КАК Хозрасчетный
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
Движения.Регистратор КАК Регистратор ,
Движения.НомерСтроки КАК НомерСтроки ,
ВЫБОР
КОГДА ХозрасчетныйСубконто.ВидДвижения = ЗНАЧЕНИЕ ( ВидДвиженияБухгалтерии.Кредит )
ТОГДА "К"
ИНАЧЕ "Д"
КОНЕЦ КАК ВидДвиженияБуквой ,
ХозрасчетныйСубконто.ВидДвижения ,
ХозрасчетныйСубконто.Вид КАК ВидСубконто
ПОМЕСТИТЬ ДвиженияССубконто
ИЗ
Движения КАК Движения
ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Субконто КАК ХозрасчетныйСубконто
ПО Движения.Регистратор = ХозрасчетныйСубконто.Регистратор
И Движения.НомерСтроки = ХозрасчетныйСубконто.НомерСтроки
И Движения.ВидДвижения = ХозрасчетныйСубконто.ВидДвижения
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗЛИЧНЫЕ
Движения.Регистратор КАК Регистратор ,
Движения.НомерСтроки КАК НомерСтроки ,
Движения.Счет ,
Движения.ВидДвижения
ИЗ
Движения КАК Движения
ВНУТРЕННЕЕ СОЕДИНЕНИЕ ПланСчетов.Хозрасчетный.ВидыСубконто КАК ХозрасчетныйВидыСубконто
ПО Движения.Счет = ХозрасчетныйВидыСубконто. Ссылка
ГДЕ
НЕ ( Движения.Регистратор , Движения.НомерСтроки , Движения.ВидДвиженияБуквой , ХозрасчетныйВидыСубконто.ВидСубконто ) В
(ВЫБРАТЬ
ДвиженияССубконто.Регистратор ,
ДвиженияССубконто.НомерСтроки ,
ДвиженияССубконто.ВидДвиженияБуквой ,
ДвиженияССубконто.ВидСубконто
ИЗ
ДвиженияССубконто КАК ДвиженияССубконто )

УПОРЯДОЧИТЬ ПО
Регистратор
ИТОГИ ПО
Регистратор ,
НомерСтроки
АВТОУПОРЯДОЧИВАНИЕ

ВыборкаДокументов = РезЗапроса . Выбрать ( ОбходРезультатаЗапроса . ПоГруппировкам );
ВремяНачалаОбработки = ТекущаяДата ();
КоличествоСтрок = ВыборкаДокументов . Количество ();
НомерСтроки = 0 ;
Пока ВыборкаДокументов . Следующий () Цикл
ТекущийМоментВремени = ТекущаяДата ();
НомерСтроки = НомерСтроки + 1 ;
КоличествоСтрокОставшихся = КоличествоСтрок - НомерСтроки ;

НаборЗаписей = РегистрыБухгалтерии . Хозрасчетный . СоздатьНаборЗаписей ();
НаборЗаписей . Отбор . Регистратор . Установить ( ВыборкаДокументов . Регистратор );
НаборЗаписей . Прочитать ();
НаборЗаписей . ОбменДанными . Загрузка =Истина;

ВыборкаПоСтрокам = ВыборкаДокументов . Выбрать ( ОбходРезультатаЗапроса . ПоГруппировкам );
Пока ВыборкаПоСтрокам . Следующий () Цикл
Проводка = НаборЗаписей [ ВыборкаПоСтрокам . НомерСтроки - 1 ];
Выборка = ВыборкаПоСтрокам . Выбрать ( ОбходРезультатаЗапроса . ПоГруппировкам );
Пока Выборка . Следующий () Цикл
Если Выборка . ВидДвижения = ВидДвиженияБухгалтерии . Дебет Тогда
Счет = Проводка . СчетДт ;
Субконто = Проводка . СубконтоДт ;
Иначе
Счет = Проводка . СчетКт ;
Субконто = Проводка . СубконтоКт ;
КонецЕсли;
СоответсвиеТекущихСубконто =Новый Соответствие ;
Для Каждого ВидСубконто ИЗ Счет . ВидыСубконто Цикл
СоответсвиеТекущихСубконто . Вставить ( ВидСубконто . ВидСубконто , Субконто [ ВидСубконто . ВидСубконто ]);
КонецЦикла;

Для Каждого ВидСубконто ИЗ Счет . ВидыСубконто Цикл
Субконто . Вставить ( ВидСубконто . ВидСубконто , ВидСубконто . ВидСубконто . ТипЗначения . ПривестиЗначение ());
Если СоответсвиеТекущихСубконто [ ВидСубконто . ВидСубконто ]<>Неопределено Тогда
Субконто . Вставить ( ВидСубконто . ВидСубконто , СоответсвиеТекущихСубконто [ ВидСубконто . ВидСубконто ]);
КонецЕсли;
КонецЦикла;

КонецЦикла;
КонецЦикла;
НаборЗаписей . Записать ();

СреднееВремя =( ТекущаяДата ()- ВремяНачалаОбработки )/ НомерСтроки ;
Состояние ( Строка ( НомерСтроки )+ "/" + Строка ( КоличествоСтрок )+ " (" + Строка ( ТекущаяДата ()- ТекущийМоментВремени )+ ") " + Строка ( ТекущаяДата ()+ КоличествоСтрокОставшихся * СреднееВремя ));
ОбработкаПрерыванияПользователя ();
КонецЦикла;

Перед выполением на больших базах рекомендуется отключить итоги и запрет границы редактирования.

Дополнительно,для вашего удобства, выкладываю файл .sel для консоли запроса с обработкой, который содержить оба текста.

Читайте также: