Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
11 дек 2024, 13:33

перенос остатков в УНФ

Автор blade_snl, 02 июл 2021, 18:31

0 Пользователей и 2 гостей просматривают эту тему.

blade_snl

Мне нужно автоматизировать ввод начальных остатков в УНФ, поттянув их из старой базы (УТП), просто чтобы не делать это руками...
я вытаскиваю из старой базы (Регистр "ТоварыНаСкладахОстатки") номенклатуру и сумму остатка и хочу создать и  заполнить документы в УНФ (ВводНачальныхОстатков)...
чтоб это не был один необъятный документ, я бью номенклатуру по складам и на каждую пачку номенклатуры создаю собственный документ.
все хорошо, все сработало. НО! почемуто первый из созданных документов в ТЧ "Запасы" 76ю и 88ю строки не вносит значение ЕдИзм ("шт"). только эти две строки и только в одном документе...
я пробовал менять позиции в выборке местами - тоже самое происходит с другими попавшими в эти строки номенклатурными позициями, тоже значение Единицы измерения не подставляется...
противно еще и то, что даже руками его установить не могу.

ниже фрагмент кода:

ПодключеннаяБаза=ПолучитьПодключениеКФайловойБД();
Сообщить("Соединились.Начинаем закачку по складу " +ВыборкаДетальныеЗаписи.Наименование);

Запрос = ПодключеннаяБаза.NewObject("Запрос");
Запрос.Текст = "ВЫБРАТЬ
| ТоварыНаСкладахОстатки.Склад.Код КАК СкладКод,
| ТоварыНаСкладахОстатки.Склад.Наименование КАК СкладНаименование,
| ТоварыНаСкладахОстатки.Номенклатура.Код КАК НоменклатураКод,
| ТоварыНаСкладахОстатки.Номенклатура.Наименование КАК НоменклатураНаименование,
| ТоварыНаСкладахОстатки.Номенклатура.Родитель.Наименование КАК НоменклатураРодительНаименование,
| ТоварыНаСкладахОстатки.Номенклатура.БазоваяЕдиницаИзмерения.Наименование КАК ЕдиницаИзмерения,
| ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток
|ИЗ
| РегистрНакопления.ТоварыНаСкладах.Остатки КАК ТоварыНаСкладахОстатки
|ГДЕ
| ТоварыНаСкладахОстатки.Склад.Код = &СкладКод";
Запрос.УстановитьПараметр("СкладКод", КодСклада);

РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
//для начала, проверим, есть ли эта номенклатура в УНФ (не все переносились)
Результат = Справочники.Номенклатура.НайтиПоКоду(Выборка.НоменклатураКод);
Если Результат.Пустая() Тогда
ТекстПредупреждения = "Номенклатура <" +Выборка.НоменклатураНаименование+ "> из Каталога <" +Выборка.НоменклатураРодительНаименование+ "> отсутствует в УНФ";
Сообщить(ТекстПредупреждения);
Иначе 
СтрокаЗапасы = НовыйДокумент.Запасы.Добавить();
СтрокаЗапасы.СтруктурнаяЕдиница = Справочники.СтруктурныеЕдиницы.НайтиПоКоду(ВыборкаДетальныеЗаписи.Код);
СтрокаЗапасы.Номенклатура = Результат;
СтрокаЗапасы.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
СтрокаЗапасы.Количество = Выборка.Остаток;
КонецЕсли;
КонецЦикла;
//теперь сохраняем Документ
Попытка
НовыйДокумент.Записать();
Исключение
    ТекстПредупреждения = "Документ Остатков по Складу (" +Выборка.СкладНаименование+ ") не был сохранен";
Сообщить(ТекстПредупреждения);
КонецПопытки;

Поиск родных

А, почему не переносите штатными (, встроенными , типовыми) обработками?

Цитата: blade_snl от 02 июл 2021, 18:31я пробовал менять позиции в выборке местами - тоже самое происходит с другими попавшими в эти строки номенклатурными позициями, тоже значение Единицы измерения не подставляется...
У Вас дублей в ЕИ или в других справочниках нет?

blade_snl

Цитата: Геннадий ОбьГЭС от 02 июл 2021, 23:11А, почему не переносите штатными (, встроенными , типовыми) обработками?

потомучто переношу из старой базы УТП Украина... штатные не приспособлены вроде...
может кончно я чтото неверно понимаю, поправьте пожалуйста )

Цитата: Геннадий ОбьГЭС от 02 июл 2021, 23:11У Вас дублей в ЕИ или в других справочниках нет?

нет, специально проверял эти позиции на дубль - все чисто

Теги: УНФ 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск