Сравнить номера документов в папке на компьютере и номера документов в 1с
По теме из базы знаний
- 1С8:борьба - личный опыт работы с платформой 1с8
- Разработка и сценарное тестирование с Vanessa-ADD. Практические примеры сценариев. Шаги встроенной библиотеки
- Универсальные инструменты 1С
- Утилита тестирования сервера 1С от HADGEHOGs
- Описание формата контейнера 1С (CF, EPF, ERF, CFE) с помощью БНФ. Предлагается внешняя компонента на С
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
&НаКлиенте
Процедура ПолучитьСписокФайлов(Команда)
СписокФайлов = НайтиФайлы("C:\Temp", "*.doc");
НомераДокументов = Новый СписокЗначений;
Для Каждого Стр Из СписокФайлов Цикл
НомераДокументов.Добавить(Стр.Имя);
КонецЦикла;
ПолучитьСписокФайловНаСервере(НомераДокументов);
КонецПроцедуры
&НаСервере
Процедура ПолучитьСписокФайловНаСервере(НомераДокументов)
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Доверенность.Ссылка КАК Ссылка
|ИЗ
| Документ.Доверенность КАК Доверенность
|ГДЕ
| Доверенность.Номер в(&Номер)
| И ГОД(Доверенность.Дата) = &Год";
Запрос.УстановитьПараметр("Год", 2019);
Запрос.УстановитьПараметр("Номер", НомераДокументов);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
КонецПроцедуры
Показать
(3)папка с файлами лежит на сервере а не на локальной машине=( и причем доверенность и год когда я если правильно все понимаю нужно сравнить номера документов в папке с номерами документов в 1с и применить фильтр в форме списка что бы остались документы номера которых совпадают. папка =1с.
(6)
Если папка на сервере, то :
1. Проверить доступ 1с к папке
2. Выполнить обе процедуры на сервере. Найти файлы там тоже сработает
3)папка с файлами лежит на сервере а не на локальной машине=( и причем доверенность и год когда я если правильно все понимаю нужно сравнить номера документов в папке с номерами документов в 1с и применить фильтр в форме списка что бы остались документы номера которых совпадают. папка =1с
Если папка на сервере, то :
1. Проверить доступ 1с к папке
2. Выполнить обе процедуры на сервере. Найти файлы там тоже сработает
(3)
код не отрабатывает ошибок. нет. В отладчике тоже ничего не видно
&НаКлиенте
Процедура ПолучитьСписокФайлов(Команда)
СписокФайлов = НайтиФайлы("C:\Temp", "*.doc");
НомераДокументов = Новый СписокЗначений;
Для Каждого Стр Из СписокФайлов Цикл
НомераДокументов.Добавить(Стр.Имя);
КонецЦикла;
ПолучитьСписокФайловНаСервере(НомераДокументов);
КонецПроцедуры
&НаСервере
Процедура ПолучитьСписокФайловНаСервере(НомераДокументов)
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Доверенность.Ссылка КАК Ссылка
|ИЗ
| Документ.Доверенность КАК Доверенность
|ГДЕ
| Доверенность.Номер в(&Номер)
| И ГОД(Доверенность.Дата) = &Год";
Запрос.УстановитьПараметр("Год", 2019);
Запрос.УстановитьПараметр("Номер", НомераДокументов);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
КонецПроцедуры
ПоказатьПроцедура ПолучитьСписокФайлов(Команда)
СписокФайлов = НайтиФайлы("C:\Temp", "*.doc");
НомераДокументов = Новый СписокЗначений;
Для Каждого Стр Из СписокФайлов Цикл
НомераДокументов.Добавить(Стр.Имя);
КонецЦикла;
ПолучитьСписокФайловНаСервере(НомераДокументов);
КонецПроцедуры
&НаСервере
Процедура ПолучитьСписокФайловНаСервере(НомераДокументов)
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Доверенность.Ссылка КАК Ссылка
|ИЗ
| Документ.Доверенность КАК Доверенность
|ГДЕ
| Доверенность.Номер в(&Номер)
| И ГОД(Доверенность.Дата) = &Год";
Запрос.УстановитьПараметр("Год", 2019);
Запрос.УстановитьПараметр("Номер", НомераДокументов);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;
//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
КонецПроцедуры
код не отрабатывает ошибок. нет. В отладчике тоже ничего не видно
1. Создать Таблицу значений с одной колонкой "НомерИзФайла";
1. Имена файлов в массив;
2. При переборе массива имен выделять номер и добавлять строку в тз из п.1.
3. Создать пакетный запрос, где первый пакет
Выбрать Тз.НомерИзФайла
Поместить ВтНомерИзФайла
Из &Тз КАК Тз
Далее соединить ВтНомерИзФайла с таблицей документов из БД по номеру
1. Имена файлов в массив;
2. При переборе массива имен выделять номер и добавлять строку в тз из п.1.
3. Создать пакетный запрос, где первый пакет
Выбрать Тз.НомерИзФайла
Поместить ВтНомерИзФайла
Из &Тз КАК Тз
Далее соединить ВтНомерИзФайла с таблицей документов из БД по номеру
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот