&НаСервере
Функция ПолучитьТЗДляНестандарта()
Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Артикул", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
Результат.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
Результат.Колонки.Добавить("Характеристика", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
Результат.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
Результат.Колонки.Добавить("ЕдИзм", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
Результат.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
Результат.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
Возврат Результат;
КонецФункции
&НаКлиенте
Процедура Расш1_ЮКОЗ_ЗагрузитьНестандартПосле(Команда)
Результат = ПолучитьТЗДляНестандарта();
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Фильтр = "Excel файлы(*.xls;*.xlsx)|*.xls;*.xlsx";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
Если ДиалогОткрытияФайла.Выбрать() Тогда
Попытка
Эксель = Новый COMОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Open(ДиалогОткрытияФайла.ПолноеИмяФайла);
Лист = Книга.WorkSheets(1);
НомерСтроки = 2;
Пока НЕ ПустаяСтрока(Лист.Cells(НомерСтроки, 1).Value) Цикл
НоваяСтрока = Результат.Добавить();
НоваяСтрока.Артикул = СокрЛП(Лист.Cells(НомерСтроки,1).Value);
НоваяСтрока.Номенклатура = СокрЛП(Лист.Cells(НомерСтроки,2).Value);
НоваяСтрока.Характеристика = СокрЛП(Лист.Cells(НомерСтроки,3).Value);
НоваяСтрока.Количество = СокрЛП(Лист.Cells(НомерСтроки,4).Value);
НоваяСтрока.ЕдИзм = СокрЛП(Лист.Cells(НомерСтроки,5).Value);
НоваяСтрока.Цена = СокрЛП(Лист.Cells(НомерСтроки,6).Value);
НоваяСтрока.Сумма = СокрЛП(Лист.Cells(НомерСтроки,7).Value);
Если НЕ ЗначениеЗаполнено(НоваяСтрока.Номенклатура) Тогда
ВызватьИсключение "В строке №" + НомерСтроки + " не заполнено наимевание номенклатуры. Загрузка прервана!";
Возврат;
КонецЕсли;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
Эксель.Application.Quit();
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПолучитьТЗДляНестандарта()
Результат = Новый ТаблицаЗначений;
Результат.Колонки.Добавить("Артикул", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
Результат.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
Результат.Колонки.Добавить("Характеристика", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
Результат.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
Результат.Колонки.Добавить("ЕдИзм", Новый ОписаниеТипов("Строка", ,Новый КвалификаторыСтроки(0, ДопустимаяДлина.Переменная)));
Результат.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
Результат.Колонки.Добавить("Сумма", Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(0, 0, ДопустимыйЗнак.Любой)));
Возврат Результат;
КонецФункции
&НаКлиенте
Процедура Расш1_ЮКОЗ_ЗагрузитьНестандартПосле(Команда)
Результат = ПолучитьТЗДляНестандарта();
Режим = РежимДиалогаВыбораФайла.Открытие;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);
ДиалогОткрытияФайла.ПолноеИмяФайла = "";
Фильтр = "Excel файлы(*.xls;*.xlsx)|*.xls;*.xlsx";
ДиалогОткрытияФайла.Фильтр = Фильтр;
ДиалогОткрытияФайла.МножественныйВыбор = Ложь;
ДиалогОткрытияФайла.Заголовок = "Выберите файл";
Если ДиалогОткрытияФайла.Выбрать() Тогда
Попытка
Эксель = Новый COMОбъект("Excel.Application");
Исключение
Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
Возврат;
КонецПопытки;
Книга = Эксель.WorkBooks.Open(ДиалогОткрытияФайла.ПолноеИмяФайла);
Лист = Книга.WorkSheets(1);
НомерСтроки = 2;
Пока НЕ ПустаяСтрока(Лист.Cells(НомерСтроки, 1).Value) Цикл
НоваяСтрока = Результат.Добавить();
НоваяСтрока.Артикул = СокрЛП(Лист.Cells(НомерСтроки,1).Value);
НоваяСтрока.Номенклатура = СокрЛП(Лист.Cells(НомерСтроки,2).Value);
НоваяСтрока.Характеристика = СокрЛП(Лист.Cells(НомерСтроки,3).Value);
НоваяСтрока.Количество = СокрЛП(Лист.Cells(НомерСтроки,4).Value);
НоваяСтрока.ЕдИзм = СокрЛП(Лист.Cells(НомерСтроки,5).Value);
НоваяСтрока.Цена = СокрЛП(Лист.Cells(НомерСтроки,6).Value);
НоваяСтрока.Сумма = СокрЛП(Лист.Cells(НомерСтроки,7).Value);
Если НЕ ЗначениеЗаполнено(НоваяСтрока.Номенклатура) Тогда
ВызватьИсключение "В строке №" + НомерСтроки + " не заполнено наимевание номенклатуры. Загрузка прервана!";
Возврат;
КонецЕсли;
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
Эксель.Application.Quit();
КонецЕсли;
КонецПроцедуры
#1, ред. 02 февраля 2021 10:50
на клиенте получаете ТЗ ,и потом на клиенте же формируете строки ,для кого такой код