Получить колонку из СКД

1. ShramkoRS 20.02.23 06:59 Сейчас в теме
Следующая ситуация. Мне надо получить список файлов из папки и сверить их программно с колнокой из СКД, содержащей номер документа. Как получить массив файлов я уже нашел НайтиФайлы(путь, маска). Знаю как получить имя файла (Файл.Имя), так как файлы названы по номеру документа. И, признаюсь, я до сих пор не понимаю как получить всю колонку из запроса, и пройтись по ней циклом.

Предполгается, что задавая парметры, пользователь будет отбирать небольшую часть данных из запроса и программа через вложеный цикл будет проходиться по всем именам файлов и номерам документов, сравнивать их и выводить информацию о том есть ли у данного документа в конфигурации файл (скан документа) в папке.
По теме из базы знаний
Найденные решения
7. DBV 20.02.23 09:30 Сейчас в теме
(6) Сильной разницы в быстродействии думаю нет, так что выбирайте сами
На мой взгляд чтение списка файлов займет много времени (зависит конечно, сколько файлов)
В любом случае количество файлов вероятней всего будет увеличиваться


В первом варианте:
1) Создать Тз
2) Создать колонку (но если Тз в реквизите, то эти два шага не нужны)
3) Пройти циклом файлы и добавить строки в Тз
4) Написать запрос
5) пройти циклом выборку или выгрузить/загрузить (смотря какой вывод нужен)

Во втором варианте:
1) Написать запрос
2) Выгрузить в Тз
3) добавить колонку (либо сразу в запросе, тогда этот шаг не нужен)
4) Пройти циклом файлы и сохранить имена в какую нибудь коллекцию
5) пройти циклом Тз из запроса и проверять наличие файла и выводить информацию
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
5. DBV 20.02.23 09:04 Сейчас в теме
(1) на мой взгляд легче список с именами файлов закинуть в ТЗ
Потом этот ТЗ в запрос и объединить с документами из базы, получив готовый результат
6. ShramkoRS 20.02.23 09:13 Сейчас в теме
(5)Я думаю закинуть запрос в тз, создать в нем доп колонку, а дальше проверять, если есть файл в папке с номером из тз, тогда писать его туда, а если нет, то отсавлять поле пустым
7. DBV 20.02.23 09:30 Сейчас в теме
(6) Сильной разницы в быстродействии думаю нет, так что выбирайте сами
На мой взгляд чтение списка файлов займет много времени (зависит конечно, сколько файлов)
В любом случае количество файлов вероятней всего будет увеличиваться


В первом варианте:
1) Создать Тз
2) Создать колонку (но если Тз в реквизите, то эти два шага не нужны)
3) Пройти циклом файлы и добавить строки в Тз
4) Написать запрос
5) пройти циклом выборку или выгрузить/загрузить (смотря какой вывод нужен)

Во втором варианте:
1) Написать запрос
2) Выгрузить в Тз
3) добавить колонку (либо сразу в запросе, тогда этот шаг не нужен)
4) Пройти циклом файлы и сохранить имена в какую нибудь коллекцию
5) пройти циклом Тз из запроса и проверять наличие файла и выводить информацию
2. user1278383 4 20.02.23 08:00 Сейчас в теме
Данные можно получить в событии ПриКомпоновкеРезультата. Мб для такой задачи имеет смысл тупо заполнять таблицу значений вместо СКД?
3. ShramkoRS 20.02.23 08:06 Сейчас в теме
(2) Я молодой зеленый, мне дали листинг задачи, я делаю по нему. Там не все до мелочей расписано, только что с чем соединить, где что взять, но тажке написнао, что проще будет сделать все через СКД. Это внешний отчет. Может и можно через таблицу.

Когда получить данные я знаю, меня больше интресует вопрос как. Я во всех этих ИсточникиДанных, НаборыДанных Получить и Найти запутался совсем, вот с этим хочу разобраться
4. ShramkoRS 20.02.23 08:10 Сейчас в теме
Вот код если это поможет

КомпМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	Данные = КомпМакета.Выполнить("ОсновнаяСхемаКомпоновкиДанных");
	Файлы = НайтиФайлы("F:\group\otd54\Спецификации на поставку ГП", "?пецификация*", Истина); 
	 
	Для каждого Файл из Файлы Цикл
		Для каждого Номер из Данные Цикл
			Если Номер.НаборыДанных.Получить(ZAK_POTR) = Сред(Файл.Имя, 14, 12) Тогда
				
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;
Показать
Оставьте свое сообщение

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