мне нужно прочитать MXL и сохранить данные в таблицу значений. первый mxl файл получен сохранением отчета "Книга продаж" в бухгалтерии 3.0, а второй - в торговле 10.3.
Задача - получить и из того и из другого таблицу значений.
С данными из бухгалтерии все более-менее нормально, и с торговлей какой-то шлак получается.
Полагаю что здесь не совсем правильно сделано
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла);
ПЗ = Новый ПостроительЗапроса;
ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область());
ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
ПЗ.ЗаполнитьНастройки();
ПЗ.Выполнить();
Вот весь код
//загрузить файл с данными из БП 3.0
&НаКлиенте
Процедура ЗагрузитьБП(Команда)
// Вставить содержимое обработчика.
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "выберите файл";
Диалог.ПолноеИмяФайла = "";
Если Диалог.Выбрать() Тогда
Массив =ПолучитьДанные(Диалог.ПолноеИмяФайла);
Для Каждого Строка Из Массив Цикл
НоваяСтрока = Бухгалтерия.Добавить();
НоваяСтрока.Документ = Строка;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Процедура ПрочитатьMXL(ИмяФайла)
//Бухгалтерия = ПолучитьТЗ(ИмяФайла);
КонецПроцедуры
Функция ПолучитьДанные(имяФайла)
ТабДок = Новый ТабличныйДокумент;
ТабДок.Прочитать(ИмяФайла);
ПЗ = Новый ПостроительЗапроса;
ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабДок.Область());
ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;
ПЗ.ЗаполнитьНастройки();
ПЗ.Выполнить();
ТЗ = ПЗ.Результат.Выгрузить();
Массив = ПолучитьСписокНомеров(ТЗ);
Возврат Массив;
КонецФункции
Функция ПолучитьСписокномеров(ТЗ)
Массив = Новый Массив;
Для Каждого Строка ИЗ ТЗ Цикл
НоваяСтрока = Строка.ПомощникПоУчетуНДС;
Индекс2016 = Найти(НоваяСтрока,"2016");
Если Индекс2016 > 0 Тогда
Индекс = Найти(НоваяСтрока, ";")-1;
СтрокаСНомером = Лев(НоваяСтрока, Индекс);
Массив.Добавить(СтрокаСНомером);
КонецЕсли;
КонецЦикла;
возврат Массив;
КонецФункции
//загрузить файл с данными из УТ 10.3
&НаКлиенте
Процедура ЗагрузитьУТ(Команда)
// Вставить содержимое обработчика.
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Диалог.Заголовок = "выберите файл";
Диалог.ПолноеИмяФайла = "";
Если Диалог.Выбрать() Тогда
Массив =ПолучитьДанные(Диалог.ПолноеИмяФайла);
Для Каждого Строка Из Массив Цикл
НоваяСтрока = Торговля.Добавить();
НоваяСтрока.Документ = Строка;
КонецЦикла;
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший