Запись в регистр сведений

1. Tailor_Made 25.08.20 09:31 Сейчас в теме
Есть регистр сведений
Измерения: Склад, Номенклатура
Ресурс: Количество
загружаю с файла остатки с 3х разных складов. Но почему-то остаются записи только для одного Склада(на всех складах одинаковые товары)
По теме из базы знаний
Найденные решения
8. SirYozha 222 25.08.20 10:24 Сейчас в теме
(6) После строки
НаборЗаписей = РегистрыСведений.НаличиеНаСкладеКонтрагента.СоздатьНаборЗаписей();


забываете
НаборЗаписей.Прочитать();


Поэтому каждый раз перезаписываете весь регистр.
alex-l19041; Tailor_Made; Jeka44; Kovekh; +4 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
4. Jeka44 25.08.20 10:08 Сейчас в теме
(1)показывайте код - в нем где-то ошибка
5. Tailor_Made 25.08.20 10:14 Сейчас в теме
(4)
Для Счетчик = 1 По 3 Цикл	
		
		Если Счетчик = 1 Тогда
			
			НаименованиеФайла = "Контрагент1.xml";
			Контрагент = Справочники.Контрагенты.НайтиПоКоду("Контрагент1"); 
			ПолучениеФайловПоFTP(НаименованиеФайла);
			ТЗ = ПрочитатьФайл(НаименованиеФайла);
			ЗаписатьКоличествоВРегистр(ТЗ, Контрагент);
		
		ИначеЕсли Счетчик = 2 Тогда
			НаименованиеФайла = "Контрагент2.xml";
			Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Контрагент2");
			ПолучениеФайловПоFTP(НаименованиеФайла);
			ТЗ = ПрочитатьФайл(НаименованиеФайла);
			ЗаписатьКоличествоВРегистр(ТЗ, Контрагент);
			
		ИначеЕсли Счетчик = 3 Тогда
			
			НаименованиеФайла = "Контрагент3.xml";
			Контрагент = Справочники.Контрагенты.НайтиПоНаименованию("Контрагент3");
			ПолучениеФайловПоFTP(НаименованиеФайла);
			ТЗ = ПрочитатьФайл(НаименованиеФайла);
			ЗаписатьКоличествоВРегистр(ТЗ, Контрагент);
			
		КонецЕсли;	

		
	КонецЦикла;
Показать
9. Kovekh 25.08.20 10:42 Сейчас в теме
(5) Ответ в 8.

И код можно лаконичнее написать же:
Для Счетчик = 1 По 3 Цикл    
           
            НаименованиеФайла = "Контрагент" + Строка(Счетчик) + ".xml";
            Контрагент = Справочники.Контрагенты.НайтиПоКоду("Контрагент" + Строка(Счетчик)); 
            ПолучениеФайловПоFTP(НаименованиеФайла);
            ТЗ = ПрочитатьФайл(НаименованиеФайла);
            ЗаписатьКоличествоВРегистр(ТЗ, Контрагент);
        
    КонецЦикла;
Показать

У вас же меняется только цифра в наименовании файла и контрагента
10. Tailor_Made 25.08.20 10:48 Сейчас в теме
(9)там не только цифра меняется, я для примера написал
6. Tailor_Made 25.08.20 10:15 Сейчас в теме
(4)
Функция ЗаписатьКоличествоВРегистр(ТЗ, Контрагент)
	
	НаборЗаписей = РегистрыСведений.НаличиеНаСкладеКонтрагента.СоздатьНаборЗаписей();
	
	Для Каждого Строка Из ТЗ Цикл 
		
		Если НЕ Строка.Номенклатура.Пустая() Тогда
			
			НоваяЗапись = НаборЗаписей.Добавить(); 
		   
		   НоваяЗапись.Контрагент 	= Контрагент; 
		   НоваяЗапись.Номенклатура = Строка.Номенклатура;  
		   НоваяЗапись.Количество 	= Строка.Остаток;
		   
		   Если НоваяЗапись.Количество > 0 Тогда
		  	 НоваяЗапись.ЕстьНаСкладе = Истина;
		   Иначе
			 НоваяЗапись.ЕстьНаСкладе = Ложь;
		   КонецЕсли;
		 КонецЕсли;
	   
	КонецЦикла; 

	НаборЗаписей.Записать();
	
КонецФункции
Показать
8. SirYozha 222 25.08.20 10:24 Сейчас в теме
(6) После строки
НаборЗаписей = РегистрыСведений.НаличиеНаСкладеКонтрагента.СоздатьНаборЗаписей();


забываете
НаборЗаписей.Прочитать();


Поэтому каждый раз перезаписываете весь регистр.
alex-l19041; Tailor_Made; Jeka44; Kovekh; +4 Ответить
11. Tailor_Made 25.08.20 10:51 Сейчас в теме
(8)Запись с такими ключевыми полями существует! : НаличиеНаСкладеКонтрагента: Контрагент1, 008 (Регистр сведений: Наличие на складе контрагента; Номер строки: 6449)

Тогда такая ошибка
2. AnryMc 849 25.08.20 09:47 Сейчас в теме
Подсказка:
Склад последний из 3-х???
3. Tailor_Made 25.08.20 10:04 Сейчас в теме
7. Tailor_Made 25.08.20 10:16 Сейчас в теме
Думаю, ошибка не в коде
А в построении регистра
Измерения:
Контрагент - Ведущее, основной отбор
Номенклатура- НЕ Ведущее, НЕ основной отбор
12. Tailor_Made 25.08.20 10:53 Сейчас в теме
Ошибку понял, всем спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот