Сравнить номера документов в папке на компьютере и номера документов в 1с

1. waitklassik 22.05.19 16:18 Сейчас в теме
Подскажите как быть. Проблема такая есть с папка с документами на компьютере, номера документов совпадают с номерами документов в 1с. Нужно что бы по нажатию кнопки в 1с в форме списка отфильтровались только те документа номера которых совпадают с номерами документов в папке.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. JohnGalt 57 22.05.19 16:32 Сейчас в теме
Можно использовать метод НайтиФайлы() и перебрать в цикле
3. mrx2012 22.05.19 16:37 Сейчас в теме
&НаКлиенте
Процедура ПолучитьСписокФайлов(Команда)
	
	СписокФайлов = НайтиФайлы("C:\Temp", "*.doc");
	НомераДокументов = Новый СписокЗначений;
	Для  Каждого  Стр Из СписокФайлов Цикл
		 НомераДокументов.Добавить(Стр.Имя);
	КонецЦикла;
	ПолучитьСписокФайловНаСервере(НомераДокументов);
	
КонецПроцедуры

&НаСервере
Процедура ПолучитьСписокФайловНаСервере(НомераДокументов)
	 	//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
	// Данный фрагмент построен конструктором.
	// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Доверенность.Ссылка КАК Ссылка
		|ИЗ
		|	Документ.Доверенность КАК Доверенность
		|ГДЕ
		|	Доверенность.Номер в(&Номер)
		|	И ГОД(Доверенность.Дата) = &Год";
	
	Запрос.УстановитьПараметр("Год", 2019);
	Запрос.УстановитьПараметр("Номер", НомераДокументов);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		// Вставить обработку выборки ВыборкаДетальныеЗаписи
	КонецЦикла;
	
	//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

	
	
	
КонецПроцедуры
Показать
6. waitklassik 22.05.19 16:49 Сейчас в теме
(3)папка с файлами лежит на сервере а не на локальной машине=( и причем доверенность и год когда я если правильно все понимаю нужно сравнить номера документов в папке с номерами документов в 1с и применить фильтр в форме списка что бы остались документы номера которых совпадают. папка =1с.
7. mrx2012 22.05.19 16:53 Сейчас в теме
(6)
3)папка с файлами лежит на сервере а не на локальной машине=( и причем доверенность и год когда я если правильно все понимаю нужно сравнить номера документов в папке с номерами документов в 1с и применить фильтр в форме списка что бы остались документы номера которых совпадают. папка =1с


Если папка на сервере, то :
1. Проверить доступ 1с к папке
2. Выполнить обе процедуры на сервере. Найти файлы там тоже сработает
9. mrx2012 22.05.19 17:23 Сейчас в теме
(6) А где нужно применить ограничение в обработке или списке документов?
11. waitklassik 23.05.19 09:59 Сейчас в теме
(3)
&НаКлиенте
Процедура ПолучитьСписокФайлов(Команда)

СписокФайлов = НайтиФайлы("C:\Temp", "*.doc");
НомераДокументов = Новый СписокЗначений;
Для Каждого Стр Из СписокФайлов Цикл
НомераДокументов.Добавить(Стр.Имя);
КонецЦикла;
ПолучитьСписокФайловНаСервере(НомераДокументов);

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

&НаСервере
Процедура ПолучитьСписокФайловНаСервере(НомераДокументов)
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Доверенность.Ссылка КАК Ссылка
|ИЗ
| Документ.Доверенность КАК Доверенность
|ГДЕ
| Доверенность.Номер в(&Номер)
| И ГОД(Доверенность.Дата) = &Год";

Запрос.УстановитьПараметр("Год", 2019);
Запрос.УстановитьПараметр("Номер", НомераДокументов);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;

//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА




КонецПроцедуры
Показать




код не отрабатывает ошибок. нет. В отладчике тоже ничего не видно
12. mrx2012 23.05.19 10:11 Сейчас в теме
(11)
т. В отладчике тоже ничего не видно


А как ты вызываешь эти процедуры?
13. waitklassik 23.05.19 10:55 Сейчас в теме
(12)через кнопку в форме списка
23. antz 23.05.19 14:29 Сейчас в теме
(11) А чего ты ждешь от этого кода? Что он должен сделать?
4. VmvLer 22.05.19 16:44 Сейчас в теме
1. Создать Таблицу значений с одной колонкой "НомерИзФайла";
1. Имена файлов в массив;
2. При переборе массива имен выделять номер и добавлять строку в тз из п.1.
3. Создать пакетный запрос, где первый пакет
Выбрать Тз.НомерИзФайла
Поместить ВтНомерИзФайла
Из &Тз КАК Тз
Далее соединить ВтНомерИзФайла с таблицей документов из БД по номеру
5. VmvLer 22.05.19 16:46 Сейчас в теме
или действительно список заначений в условие запроса, хотя я предпочитаю треш и угар с временными таблицами, ибо в типовых это
в тренде.
8. VmvLer 22.05.19 17:04 Сейчас в теме
получить массив имен на сервере и передать этот массив на клиент в команду что мешает?
10. tusv 211 22.05.19 19:06 Сейчас в теме
Я бы писал имена файлов и номера с датами документов в регистр сведений и простое простое соединение в запросе динамического списка даст нужный результат
14. mrx2012 23.05.19 11:00 Сейчас в теме
15. waitklassik 23.05.19 11:01 Сейчас в теме
(14)добавил кнопку в форму списка документов на нее повесил твой код, отказывается работать=(
16. mrx2012 23.05.19 11:05 Сейчас в теме
а остановиться в отладке не получается?
17. waitklassik 23.05.19 11:51 Сейчас в теме
18. mrx2012 23.05.19 12:10 Сейчас в теме
(17) Если не получается из списка документов выполнить, попробуй во внешней обработке сначала.
19. waitklassik 23.05.19 13:54 Сейчас в теме
(18)а как применить фильтр в форме списка что бы остались только те документы в которых номера совпали (Номер документа 1с= номеру документа в папке)????
20. mrx2012 23.05.19 13:57 Сейчас в теме
Для начала нужно понять, почему не отрабатывает кнопка.
21. waitklassik 23.05.19 13:58 Сейчас в теме
(20)при попытке вывести фильтр будет проще понять что не так. но я не могу подобрать условие=(
22. mrx2012 23.05.19 14:25 Сейчас в теме
какая конфигурация? и тип документа?
24. anitakh 24.05.19 11:38 Сейчас в теме
А зачем так заморачиваться - если можно в документе просто сохранять ссылку на файл ?
И при открытии документа будет открываться тот файл который необходим
Оставьте свое сообщение

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