Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
03 апр 2025, 04:25

Обновление тч после загрузки новых данных

Автор sali, 24 фев 2025, 09:27

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

sali

сделал загрузку приходной накладной с xml . там два поля для номенклатуры. первое - номенклатура 1С , это колонка для товаров которые уже есть она заполняется в том случае если произошло сопоставление со второй колонкой - номенклатура файла. номенклатура файла - это товары с файла.
алгоритм такой, когда идет загрузка идет сопоставление товара из файла и номенклатуры из 1с по коду, если такая есть - заполняются обе колонки , если нет заполняется только вторая. но нужно после всей загрузки обновить тч чтобы товары отобразились и в колонке номенклатура 1С. вот как это сделать?

antoneus

Но ведь если

Цитата: sali от 24 фев 2025, 09:27когда идет загрузка идет сопоставление товара из файла и номенклатуры из 1с по коду, если такая есть - заполняются обе колонки

то обновлять как-то и не надо ничего, не?

sali

antoneus, Снимок экрана (155).png для примера,  я добавляю товары с файла и они у меня сопоставились (такой товар есть в 1с он записался в колонку номенклатура 1с). если же не сопоставилась то колонка номенклатура 1с будет пустой или же какой-то из товаров будет пустым. мне же нужно после загрузки как бы повторно загрузить товары, просто отобразить в колонке те же названия что и в колонке номенклатура файла. обновить

sali

или как-то пустить обновление через время, возможно такое? например данные с файла загрузились  прошло секунд  5 тч обновилась и отобразились в первой колонке товары

antoneus

Цитата: sali от 24 фев 2025, 09:43после загрузки как бы повторно загрузить товары

Тут недопонял.
А на скрине пятая строка вся пустая почему?

sali

antoneus, потому что там файл немного некорректный. в 5 строке не хватает одного атрибута
Цитата: antoneus от 24 фев 2025, 09:47Тут недопонял.
тут понимаю, запутал вас. но по другому и сказать как то не могу....
простыми словами - обновить тч , после загрузки данных.
загрузили данные и получаем такое Нет сообщений, связанных с этим вложением.
видите, 3 товара не сопоставились? нужно отобразить до создания документа ( не спрашивайте зачем, я сам хрен знаю. даже уточнять не хочу)
то бишь обновить тч и отобразить. так и вопрос - можно ли обновить после 5 секунд как данные загрузились  или проще во время загрузки сразу записать и когда сохраняешь данные отображать?

sali


sali

antoneus, вот код
&НаКлиенте
Процедура ЗагрузитьДанные(Команда)   
ЗагрузитьДанныеНаСервере(); 
КонецПроцедуры

&НаСервере
Процедура ЗагрузитьДанныеНаСервере( )

Для Каждого СтрокаДанных Из Объект.ДанныеФайла Цикл   

Наименование = СтрокаДанных.Номенклатурафайла;
Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Наименование, Истина);

Если Не ЗначениеЗаполнено(Номенклатура) Тогда
Номенклатура = Справочники.Номенклатура.СоздатьЭлемент();
Иначе
Номенклатура = Номенклатура.ПолучитьОбъект();
КонецЕсли;       

Номенклатура.Код     = СтрокаДанных.КодТовара;
Номенклатура.Артикул    = СтрокаДанных.Артикул;
Номенклатура.Наименование    = Наименование;
Номенклатура.Родитель    = Справочники.Номенклатура.НайтиПоНаименованию("Товары");

//Номенклатура.Штрихкод    = СтрокаДанных.Штрихкод;
Номенклатура.КодТНВЭД    = СтрокаДанных.ТНВЭД;
Номенклатура.ЕдиницаИзмерения  = СтрокаДанных.ЕдиницаИзмерения;   
СтрокаДанных.Номенклатура1С    = наименование;
Номенклатура.Записать(); 

КонецЦикла;  

Сообщить("Загрузка выполнена успешно!");

КонецПроцедуры

 

эта строка и есть номенклатура из 1с. вот как мне ее заполнить после загрузки?
СтрокаДанных.Номенклатура1С    = наименование;

antoneus

Номенклатура.КодТНВЭД            = СтрокаДанных.ТНВЭД;
Номенклатура.ЕдиницаИзмерения  = СтрокаДанных.ЕдиницаИзмерения;   
Номенклатура.Записать(); 
СтрокаДанных.Номенклатура1С    = Номенклатура.Ссылка;

sali

antoneus, скажите почему записывается только один штрихкод , последний???
   
        ШтрихкодНоменклатуры = РегистрыСведений.ШтрихкодыНоменклатуры.СоздатьНаборЗаписей();
        ШтрихкодТовара = ШтрихкодНоменклатуры.Добавить();
        ШтрихкодТовара.Номенклатура = справочники.Номенклатура.НайтиПоНаименованию(Наименование, истина)лка; 
        ШтрихкодТовара.Штрихкод = строкаданных.штрихкод;
        ШтрихкодНоменклатуры.Записать();

Снимок экрана (157).png

Теги:

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

Рейтинг@Mail.ru

Поиск