Заполнение ТЧ

1. user1316148 16.06.21 10:45 Сейчас в теме
Читаю exel фаил и получаю из него номера заказов. Пишу их в массив пытаюсь запросом заполнить ТЧ документа. В массиве около 50 номеров. работать не хочет пишет превышение времени. Как правильно подгрузить результат выгрузки в ТЧ

&НаСервере
Процедура ЗаполнитьДанныеНаСервере()
	Попытка
		МассивНомерНаСайте = Новый Массив;
		Для каждого СтрокаДанных Из ЭтаФорма.ТаблицаОстатковРасчетов Цикл
			МассивНомерНаСайте.Добавить(СокрЛП(СтрокаДанных.НомерЗаказаНаСайте));
		КонецЦикла;
		
		Запрос = Новый Запрос;
		Запрос.Текст =
		"ВЫБРАТЬ
		|	ЗНАЧЕНИЕ(Перечисление.ТипыРасчетовСПартнерами.РасчетыСКлиентом) КАК ТипРасчетов,
		|	ЕСТЬNULL(РасчетыСКлиентами.СуммаОстаток, 0) КАК Сумма,
		|	РасчетыСКлиентами.ЗаказКлиента.Номер КАК Номер,
		|	РасчетыСКлиентами.ЗаказКлиента КАК Заказ,
		|	РасчетыСКлиентами.АналитикаУчетаПоПартнерам.Контрагент КАК Контрагент,
		|	ВЫБОР
		|		КОГДА РасчетыСКлиентами.СуммаОстаток > 0
		|			ТОГДА РасчетыСКлиентами.СуммаОстаток
		|		ИНАЧЕ 0
		|	КОНЕЦ КАК ДолгПартнера,
		|	ВЫБОР
		|		КОГДА РасчетыСКлиентами.КОплатеОстаток > 0
		|			ТОГДА РасчетыСКлиентами.КОплатеОстаток
		|		ИНАЧЕ 0
		|	КОНЕЦ КАК КОплате,
		|	РасчетыСКлиентами.ЗаказКлиента.СтатусЗаказа КАК СтатусЗаказа,
		|	РасчетыСКлиентами.ЗаказКлиента.НомерЗаказаНаСайте КАК НомерЗаказаНаСайте
		|ИЗ
		|	РегистрНакопления.РасчетыСКлиентами.Остатки(
		|			,
		|			ЗаказКлиента.НомерЗаказаНаСайте В (&МассивНомерНаСайте)
		|				И ЗаказКлиента.Контрагент = """") КАК РасчетыСКлиентами";
		
		Запрос.УстановитьПараметр("МассивНомерНаСайте", МассивНомерНаСайте);
		Выборка = Запрос.Выполнить().Выгрузить();
		
		
		Строка = ЭтаФорма.ТаблицаОстатковРасчетов;	
		Пока Выборка.Следующий() Цикл
			Значение = Строка.Добавить();
			Значение.НомерЗаказаНаСайте = Выборка.НомерЗаказаНаСайте;
			Значение.СтатусЗаказа = Выборка.СтатусЗаказа;
			Значение.Контрагент = Выборка.Контрагент;
			Значение.Сумма = Выборка.Сумма;
			Значение.Заказ = Выборка.Заказ;
			Значение.ДолгПартнера = Выборка.ДолгПартнера;
			Значение.ТипРасчетов = Выборка.ТипРасчетов;
		КонецЦикла;

	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не удалось внести данные по причине" +ОписаниеОшибки();
		Сообщение.Сообщить();	
	КонецПопытки; 	
	
КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. dj_tol 103 16.06.21 10:58 Сейчас в теме
(1)Если колонки совпадают с запросом у документа, тогда лучше использовать метод ЗАГРУЗИТЬ.
Объект.ТаблицаОстатковРасчетов.Загрузить(Запрос.Выполнить().Выгрузить());
4. ZergKRSK 129 16.06.21 11:58 Сейчас в теме
(2) ну или ЗаполнитьЗначенияСвойств
3. dj_tol 103 16.06.21 11:00 Сейчас в теме
(1) Или так:
Строка = ЭтаФорма.ТаблицаОстатковРасчетов;

Строка = ОБЪЕКТ.ТаблицаОстатковРасчетов;
5. user1316148 16.06.21 15:16 Сейчас в теме
(3)
переменная объект не определена
Прикрепленные файлы:
6. meriferi 17.06.21 11:30 Сейчас в теме
ЗаполнитьЗначенияСвойств(НоваяСтрока,Строка);
7. user1316148 18.06.21 14:25 Сейчас в теме
сделал в итоге так

ТаблицаОстатковРасчетов.Загрузить(Запрос.Выполнить().Выгрузить());

Всем спасибо за советы.
Оставьте свое сообщение

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