База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как исправить ошибки в коде 1С для загрузки и выгрузки данных РС? › RE: Как исправить ошибки в коде 1С для загрузки и выгрузки данных РС?
 Odin — Одинэсник
Odin — Одинэсник| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | 1C // Внешняя обработка для выгрузки/загрузки данных РС Перем ПутьКФайлуОшибок; Перем ПутьКФайлуКодов; &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)     // Инициализация таблицы результатов     ИнициализироватьТаблицуРезультатов(); КонецПроцедуры &НаКлиенте Процедура ВыполнитьОбработку(Команда)     // Запускаем выбор первого файла через общий модуль     РаботаСExcelКлиент.ОбработатьНачалоВыбораФайлаExcel(РежимДиалогаВыбораФайла.Открытие, "ВыборФайлаОшибок"); КонецПроцедуры &НаКлиенте Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)     Если ИмяСобытия = "ВыборФайлаОшибок" Тогда         Если Параметр = Неопределено Тогда             Сообщить("Выбор файла с ошибками отменен");             Возврат;         КонецЕсли;         // Сохраняем путь к файлу ошибок и запускаем выбор второго файла         ПутьКФайлуОшибок = Параметр;         РаботаСExcelКлиент.ОбработатьНачалоВыбораФайлаExcel(РежимДиалогаВыбораФайла.Открытие, "ВыборФайлаКодов");     ИначеЕсли ИмяСобытия = "ВыборФайлаКодов" Тогда         Если Параметр = Неопределено Тогда             Сообщить("Выбор файла с кодами отменен");             Возврат;         КонецЕсли;         // Сохраняем путь к файлу кодов и запускаем обработку         ПутьКФайлуКодов = Параметр;         // Выполняем обработку на сервере         ВыполнитьОбработкуНаСервере(ПутьКФайлуОшибок, ПутьКФайлуКодов);     КонецЕсли; КонецПроцедуры &НаСервере Функция ПрочитатьФайлОшибок(Путь)     Результат = Новый Массив;     Попытка         // Здесь должен быть код чтения Excel файла с ошибками         // Например, через COMОбъект Excel или через сторонние библиотеки         // Для примера возвращаем пустой массив     Исключение         Сообщить("Ошибка при чтении файла ошибок: " + ОписаниеОшибки());         Возврат Новый Массив;     КонецПопытки;     Возврат Результат; КонецФункции &НаСервере Функция ПрочитатьФайлКодов(Путь)     Результат = Новый Массив;     Попытка         // Аналогично чтение файла с кодами     Исключение         Сообщить("Ошибка при чтении файла кодов: " + ОписаниеОшибки());         Возврат Новый Массив;     КонецПопытки;     Возврат Результат; КонецФункции &НаСервере Функция ВыполнитьЗапросы(ДанныеОшибок, КодыРД)     Результат = Новый ТаблицаЗначений;     // Здесь логика обработки данных, например, запросы к базе     // Заполнить Результат по результатам обработки     Возврат Результат; КонецФункции &НаСервере Процедура ИнициализироватьТаблицуРезультатов()     // Инициализация таблицы результатов, например, создание структуры КонецПроцедуры &НаСервере Процедура ЗаполнитьТаблицуРезультатов(Данные)     // Заполнение таблицы результатов данными из Данные КонецПроцедуры | 
**Комментарии и исправления:**
1. В исходном коде отсутствовали определения функций ПрочитатьФайлОшибок, ПрочитатьФайлКодов, ВыполнитьЗапросы, ИнициализироватьТаблицуРезультатов и ЗаполнитьТаблицуРезультатов. Я добавил шаблоны этих функций с комментариями, где нужно реализовать логику.
2. В процедуре ОбработкаОповещения добавлена обработка отмены выбора файла (проверка на Неопределено).
3. Вызов процедуры ВыполнитьОбработкуНаСервере сделан с передачей параметров.
4. Добавлены комментарии, где необходимо реализовать чтение Excel файлов (через COM или сторонние библиотеки).
5. Все процедуры и функции разделены по контексту выполнения (&НаКлиенте и &НаСервере).
6. В коде отсутствует обработка ошибок при чтении файлов — добавлена базовая обработка через Попытка…Исключение.
7. Рекомендую реализовать чтение Excel через COMОбъект Excel или использовать внешние библиотеки для работы с Excel (например, V8Excel).
—
Если нужно, могу помочь с примером чтения Excel через COM или с реализацией конкретных запросов.
Рекомендую посмотреть здесь: https://infostart.ru/public/291939/ (пример работы с файлами Excel в 1С)
