Все пользователи 1С всех версий (начиная с 7-й) сталкиваются с проблемой нормальной работы с данными, сохраненными в Excel файл.
Есть некоторые хитрости, которые позволяют облегчить работу с сохраненными данными из 1С в формат Excel.
Спасибо! Сохранение файла без листов это меньшая часть проблем. Больше всего проблем доставляет, то что данные сохраняются в общем формате и работать с ними дальше невозможно. Нельзя поставить фильтры, группировки и прочее, даже вручную изменить тип данных не всегда удается. Решал проблему вандальным методом - сохраняем файл из 1С сразу же в HTML и далее открываем дальше его с помощью Ексель и с этого момента все данные имеют тот тип, который нужен. Далее можем сохранить файл уже в нормальный формат, ну или дальше с ним так и работать.
Если уж править код, то вот как я реализовал подобную задачу в 7.7.
Процедура в глобальном модуле
//_____________________________________________________________________________
//Функция открывает таблицу в MS Excel
//Таблица - печатная форма 1С
//ИмяЛиста - имя, которое будет присвоено листу книги MS Excel (если не задано, то остается "Sheet1")
//ОтображатьЯрлычки - показывать/скрыть ярлычки листов в MS Excel
//ОтображатьСетку - показывать/скрыть линии сетки в MS Excel
//УдалитьСтроки - позволяет удалить указанное количество верхних строк таблицы
//УдалитьСтроки - позволяет удалить указанное количество левых столбцов таблицы
Функция глОткрытьТаблицуВExcel(Таблица, ИмяЛиста = "", ОтображатьЯрлычки = 1, ОтображатьСетку = 1, УдалитьСтроки = 0, УдалитьСтолбцы = 0) Экспорт
Перем Excel, ExcelWB, ExcelSh, ExcelPS, ИмяФайла, Рез, Зн, Зн1;
Если ТипЗначенияСтр(Таблица) <> "Таблица" Тогда
Возврат 0;
КонецЕсли;
Попытка
Excel = СоздатьОбъект("Excel.Application")
Исключение
Сообщить("Не удалось открыть MS Excel","!");
Возврат 0;
КонецПопытки;
Пока 1=1 Цикл
//Подберем уникальное имя для временного файла
ИмяФайла = КаталогВременныхФайлов() + "1c" + СтрЗаменить(ТекущееВремя(), ":", "");
Если (ФС.СуществуетФайл(ИмяФайла+".tmp") = 1) или (ФС.СуществуетФайл(ИмяФайла+".xls") = 1) Тогда
ФС.УдалитьФайл(ИмяФайла+".tmp");
ФС.УдалитьФайл(ИмяФайла+".xls")
Иначе
Прервать;
КонецЕсли
КонецЦикла;
Таблица.Записать(ИмяФайла+".tmp", "XLS");
Если ФС.СуществуетФайл(ИмяФайла+".tmp") = 0 Тогда
Сообщить("Ошибка записи файла """ + ИмяФайла + "tmp""","!");
Excel = "";
Возврат 0;
КонецЕсли;
Рез = 1;
Попытка
ExcelWB = Excel.Workbooks.Add(ИмяФайла+".tmp"); //Откроем временный файл в Excel в режиме шаблона (чтобы не блокировать файл)
Попытка //Если на клиентской машине не установлен принтер, обращение к настройкам страницы вызывает ошибку. Поэтому работаем в "Попытка ... КонецПопытки"
ExcelPS = ExcelWB.Sheets(1).PageSetup; //Исправим спецсимволы в колонтитулах
Зн = ExcelPS.LeftHeader; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.LeftHeader = Зн1 КонецЕсли;
Зн = ExcelPS.CenterHeader; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.CenterHeader = Зн1 КонецЕсли;
Зн = ExcelPS.RightHeader; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.RightHeader = Зн1 КонецЕсли;
Зн = ExcelPS.LeftFooter; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.LeftFooter = Зн1 КонецЕсли;
Зн = ExcelPS.CenterFooter; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.CenterFooter = Зн1 КонецЕсли;
Зн = ExcelPS.RightFooter; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.RightFooter = Зн1 КонецЕсли;
Исключение
КонецПопытки;
ExcelWB.SaveAs(ИмяФайла+".xls", -4143); //Сохраним, чтобы обновить формат файла до текущего (xlNormal = -4143)
ExcelWB.Close(0); //Закроем книгу ...
ExcelWB = Excel.Workbooks.Add(ИмяФайла+".xls"); //... и вновь откроем в режиме шаблона
Попытка
ExcelSh = ExcelWB.Sheets(1);
Если ПустаяСтрока(ИмяЛиста) = 0 Тогда //Зададим имя ярлычка
ExcelSh.Name = ИмяЛиста
КонецЕсли;
Если ОтображатьЯрлычки = 1 Тогда //Сделаем видимыми ярлычки листов
ExcelWB.Windows(1).DisplayWorkbookTabs = 1;
ExcelWB.Windows(1).TabRatio = 0.6 //... и отодвинем горизонтальную полосу прокрутки от левого края
КонецЕсли;
Если ОтображатьСетку = 0 Тогда //Скроем линии сетки
ExcelWB.Windows(1).DisplayGridlines = 0
КонецЕсли;
Если УдалитьСтроки > 0 Тогда //Удалим верхние строки
ExcelSh.Range(ExcelSh.Rows(1), ExcelSh.Rows(УдалитьСтроки)).Delete()
КонецЕсли;
Если УдалитьСтолбцы > 0 Тогда //Удалим левые столбцы
ExcelSh.Range(ExcelSh.Columns(1), ExcelSh.Columns(УдалитьСтолбцы)).Delete()
КонецЕсли;
Исключение
КонецПопытки;
ExcelWB.Saved = 0;
Исключение
Сообщить("Ошибка открытия файла в MS Excel","!"); Рез = 0
КонецПопытки;
Попытка
Excel.Visible = 1
Исключение
КонецПопытки;
ExcelWB = ""; ExcelSh = ""; ExcelPS = ""; Excel = "";
ФС.УдалитьФайл(ИмяФайла+".tmp");
ФС.УдалитьФайл(ИмяФайла+".xls");
Возврат Рез
КонецФункции //глОткрытьТаблицуВExcel
Показать
Вызов процедуры печати в отчете с выгрузкой в файл экселя и его отрытием На форме две кнопки:
Печать (открытие печатной формы 1С): Формула вызова - Сформировать(0)
Открыть в Excel: Формула вызова - Сформировать(1)
Дополнения в процедуре "Сформировать" (или Печать - кому как больше нравится
Процедура Сформировать(ЭкспортВЭксель = 0)
.................
.................
.................
Если ЭкспортВЭксель = 0 Тогда
Таб.ПараметрыСтраницы(2,,,,,,,,,1,,);
Таб.Показать("Взаиморасчеты с контрагентами за период", "");
Иначе
глОткрытьТаблицуВExcel(Таб, "Взаиморасчеты с контрагентами за период", 1, 0, 0, 0);
КонецЕсли;
КонецПроцедуры
Можно ещё так: Надстройка Excel у для "исправления" выгруженной из 1С "Карточки счета"http://infostart.ru/public/85416/ Преимущество: Использование выгрудкееыз из 1С "стандартными" методами...
А для "непродвинутого пользователя" можно в Экселе вывести кнопку...
Да, это меньшая часть проблем.
У нас, например, искажаются/пропадают цвета фона ячеек при сохранении/копировании в xls/xlsx
Нормального решения не нашел (Не нормальное - увеличить градиент цвета вручную)
Я не знаю как вы добились результата на картинке, но вот мой результат сохранения в формате xlsx, открытый в Excel 2013, Бухгалтерия предприятия 3.0 (3.0.36.19), платформа 8.3.5.1231, оборотно-сальдовая ведомость по счёту На рисунке в левом нижнем углу отчётливо видно вертикальное троеточие, если за него потянуть вправо, то откроются страницы из которых состоит данная Excel книга.
Исходя из выше написанного считаю статью лишней, а проблему надуманной. При сохранении из 1С в Excel имеется столько проблем, что можно составить отдельную статью только из их перечисления, но даже в той статье вряд ли стоит уделять место и время данной проблеме.
Ну и конечно же стандартный коммент о том что решение проблемы через внешний объект это плохая практика.
(5) Dragonim, свойство TabRatio в диапазоне от 0 до 1, значение чем ближе к 1, тем три точки ближе к правому краю экрана, и это работает в строгой последовательности DisplayWorkbookTabs = 1, а потом TabRatio = 0.6 - это 60% слева. 1 - три точки будут в правом углу экрана. Работает на 7.7.027 и на 8.2.19.106
Ответ на стандартный коммент - когда приходится сохранять книгу Excel с несколькими листами из 1С, пример титулка - общие итоги, а последующие разные расшифровки, то без внешнего объекта как бы никак.
Ответ на стандартный коммент - когда приходится сохранять книгу Excel с несколькими листами из 1С, пример титулка - общие итоги, а последующие разные расшифровки, то без внешнего объекта как бы никак.
Видимо мне в жизни очень сильно повезло, что я ни когда не сталкивался в 1С с такими отчётами. Надеюсь моё везение на этом не закончиться.
Это все хорошо вы описали, но суть статьи подсказать, как решить одну из многих проблем связки 1С + Excel,
а не куда его лучше положить, чтобы было лучше брать ;)
А править код это уже удел каждого разработчика на свое усмотрение.
Но все же спасибо за предложение.
Спасибо, что провели такую работу и не полнились выложить это общественности. Мне таки эта инфа очень к стати пришлась. Особенное спасибо за приведение кода для разных платформ. Можно использовать как справочник.
Спасибо за статью.
На самом деле пользователям важны ярлычки листов, и часто за этим обращаются, простое и удобное решение, очень помогло.
Кстати, а может вы действительно знаете, почему в сохраненном файле не работают фильтры и как с этим бороться?
Выгружаю данные в Excel. В ячейке код счета "20.01", определяю формат ячейки как текстовый
Лист.Cells(НомерСтроки, 1).NumberFormat = "@";
А в результате в файле все равно выходит 20,01.
Что можете предложить, чтобы в файле все-таки получалось 20.01 с точкой, а не с запятой?
(24) уберите выравнивание по правому краю, иначе excel будет такую ячейку воспринимать как число
я несколько изменил процедуру описанную в (13)
теперь это выглядит так
//_____________________________________________________________________________
//Функция открывает таблицу в MS Excel
//Таблица - печатная форма 1С
//ИмяЛиста - имя, которое будет присвоено листу книги MS Excel (если не задано, то остается "Sheet1")
//ОтображатьЯрлычки - показывать/скрыть ярлычки листов в MS Excel
//ОтображатьСетку - показывать/скрыть линии сетки в MS Excel
//УдалитьСтроки - позволяет удалить указанное количество верхних строк таблицы
//УдалитьСтроки - позволяет удалить указанное количество левых столбцов таблицы
Функция глОткрытьТаблицуВExcel(Таблица, ИмяЛиста = "", ОтображатьЯрлычки = 1, ОтображатьСетку = 1, УдалитьСтроки = 0, УдалитьСтолбцы = 0, пИмяФайла="", пКаталог = "", ОткрытьФайл = 1, ВыровнятьЧисла = 0) Экспорт
Перем Excel, ExcelWB, ExcelSh, ExcelPS, ИмяФайла, Рез, Зн, Зн1;
Если ТипЗначенияСтр(Таблица) <> "Таблица" Тогда
Возврат 0;
КонецЕсли;
// Пробежимся по всем ячейкам и поменяем положение по горизонтали для чисел на выравнивание по правому краю
Для Выс = 1 По Таблица.ВысотаТаблицы() Цикл
Для Шир = 1 По Таблица.ШиринаТаблицы() Цикл
Обл = Таблица.Область(Выс,Шир,Выс,Шир);
Если глПроверкаНаличияТолькоЦифр(Обл.Текст) = 1 Тогда
// цифры только
Если Обл.ГоризонтальноеПоложение() <> 2 Тогда
Обл.ГоризонтальноеПоложение(2);
КонецЕсли;
ИначеЕсли ВыровнятьЧисла = 1 Тогда
//программно указываем что надо выравнивать числа с запятой и знаками после запятой
Если глПроверкаНаличияБукв(Обл.Текст) = 1 Тогда
//есть буква кириллицы или латиницы
Продолжить;
ИначеЕсли СтрЧислоВхождений(Обл.Текст, ".") > 1 Тогда
//дата - так как имеется более одной "."
Продолжить;
КонецЕсли;
Если (СокрЛП(Обл.Текст) = "0") или (Число(Обл.Текст) > 0) или (Число(Обл.Текст) < 0) Тогда
//число
Если Обл.ГоризонтальноеПоложение() <> 2 Тогда
Обл.ГоризонтальноеПоложение(2);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
//// Чтобы параметры печати не путались с другими - даем им имя
//Таблица.Опции(,,,,"Excel",,,);
Попытка
Excel = СоздатьОбъект("Excel.Application")
Исключение
Сообщить("Не удалось открыть MS Excel","!");
Возврат 0;
КонецПопытки;
Пока 1=1 Цикл
//Подберем уникальное имя для временного файла
Если ПустоеЗначение(пКаталог) = 1 Тогда
пКаталог = КаталогВременныхФайлов();
КонецЕсли;
Если ПустоеЗначение(пИмяФайла) = 1 Тогда
ИмяФайла = пКаталог + "1c" + СтрЗаменить(ТекущееВремя(), ":", "");
Иначе
ИмяФайла = пКаталог + СокрЛП(пИмяФайла);
КонецЕсли;
Если (ФС.СуществуетФайл(ИмяФайла+".tmp") = 1) или (ФС.СуществуетФайл(ИмяФайла+".xls") = 1) Тогда
ФС.УдалитьФайл(ИмяФайла+".tmp");
ФС.УдалитьФайл(ИмяФайла+".xls")
Иначе
Прервать;
КонецЕсли
КонецЦикла;
Таблица.Записать(ИмяФайла+".tmp", "XLS");
Если ФС.СуществуетФайл(ИмяФайла+".tmp") = 0 Тогда
Сообщить("Ошибка записи файла """ + ИмяФайла + "tmp""","!");
Excel = "";
Возврат 0;
КонецЕсли;
Рез = 1;
Попытка
ExcelWB = Excel.Workbooks.Add(ИмяФайла+".tmp"); //Откроем временный файл в Excel в режиме шаблона (чтобы не блокировать файл)
Попытка //Если на клиентской машине не установлен принтер, обращение к настройкам страницы вызывает ошибку. Поэтому работаем в "Попытка ... КонецПопытки"
ExcelPS = ExcelWB.Sheets(1).PageSetup; //Исправим спецсимволы в колонтитулах
Зн = ExcelPS.LeftHeader; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.LeftHeader = Зн1 КонецЕсли;
Зн = ExcelPS.CenterHeader; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.CenterHeader = Зн1 КонецЕсли;
Зн = ExcelPS.RightHeader; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.RightHeader = Зн1 КонецЕсли;
Зн = ExcelPS.LeftFooter; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.LeftFooter = Зн1 КонецЕсли;
Зн = ExcelPS.CenterFooter; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.CenterFooter = Зн1 КонецЕсли;
Зн = ExcelPS.RightFooter; Зн1 = СтрЗаменить(СтрЗаменить(СтрЗаменить(СтрЗаменить(Зн, "#P", "&P"), "#Q", "&N"), "#T", "&T"), "#D", "&D"); Если Зн <> Зн1 Тогда ExcelPS.RightFooter = Зн1 КонецЕсли;
Исключение
КонецПопытки;
ExcelWB.SaveAs(ИмяФайла+".xls", -4143); //Сохраним, чтобы обновить формат файла до текущего (xlNormal = -4143)
ExcelWB.Close(0); //Закроем книгу ...
ExcelWB = Excel.Workbooks.Add(ИмяФайла+".xls"); //... и вновь откроем в режиме шаблона
Попытка
ExcelSh = ExcelWB.Sheets(1);
Если ПустаяСтрока(ИмяЛиста) = 0 Тогда //Зададим имя ярлычка
ExcelSh.Name = ИмяЛиста
КонецЕсли;
Если ОтображатьЯрлычки = 1 Тогда //Сделаем видимыми ярлычки листов
ExcelWB.Windows(1).DisplayWorkbookTabs = 1;
ExcelWB.Windows(1).TabRatio = 0.6 //... и отодвинем горизонтальную полосу прокрутки от левого края
КонецЕсли;
Если ОтображатьСетку = 0 Тогда //Скроем линии сетки
ExcelWB.Windows(1).DisplayGridlines = 0
КонецЕсли;
Если УдалитьСтроки > 0 Тогда //Удалим верхние строки
ExcelSh.Range(ExcelSh.Rows(1), ExcelSh.Rows(УдалитьСтроки)).Delete()
КонецЕсли;
Если УдалитьСтолбцы > 0 Тогда //Удалим левые столбцы
ExcelSh.Range(ExcelSh.Columns(1), ExcelSh.Columns(УдалитьСтолбцы)).Delete()
КонецЕсли;
Исключение
КонецПопытки;
ExcelWB.Saved = 0;
Исключение
Сообщить("Ошибка открытия файла в MS Excel","!");
Рез = 0
КонецПопытки;
Если ОткрытьФайл = 1 Тогда
Попытка
Excel.Visible = 1;
Исключение
КонецПопытки;
Иначе
Excel.Visible = 0;
ФС.УдалитьФайл(ИмяФайла + ".xls");
ExcelWB.SaveAs(ИмяФайла+".xls", -4143); //Сохраним, чтобы обновить формат файла до текущего (xlNormal = -4143)
ExcelWB.Close(0); //Закроем книгу ...
КонецЕсли;
//описание метода сохранить
//Sub SaveAs([Filename], [FileFormat], [Password], [WriteResPassword], [ReadOnlyRecommended], [CreateBackup], [AccessMode As XlSaveAsAccessMode = xlNoChange], [ConflictResolution], [AddToMru], [TextCodepage], [TextVisualLayout], [Local])
//Member of Excel.Workbook
ExcelWB = ""; ExcelSh = ""; ExcelPS = ""; Excel = "";
ФС.УдалитьФайл(ИмяФайла + ".tmp");
Если ОткрытьФайл = 1 Тогда
ФС.УдалитьФайл(ИмяФайла + ".xls");
ИначеЕсли ОткрытьФайл = 2 Тогда
//не надо открывать каталог
Сообщить("Файл сохранен по адресу: " + СокрЛП(ИмяФайла) + ".xls");
Иначе
Сообщить("Файл сохранен по адресу: " + СокрЛП(ИмяФайла) + ".xls");
ЗапуститьПриложение(пКаталог);
КонецЕсли;
Возврат Рез
КонецФункции //глОткрытьТаблицуВExcel
Показать
плюс две доп функции проверяющие есть ли буквы/цифры в ячейке
//_____________________________________________________________________________
// глПроверкаНаличияТолькоЦифр(Стр)
//
// Параметры:
// Стр - текстовая строка
//
// Возвращаемое значение:
// 1 - если в строке только цифры, иначе 0
Функция глПроверкаНаличияТолькоЦифр(Знач Стр) Экспорт
ТолькоЦифры = 1;
Цифры = "1234567890";
Для Сч = 1 По СтрДлина(Стр) Цикл
Символ = Сред(Стр, Сч, 1);
Если Найти(Цифры, Символ) = 0 Тогда
ТолькоЦифры = 0;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ТолькоЦифры;
КонецФункции // глПроверкаНаличияТолькоЦифр()
//_____________________________________________________________________________
// глПроверкаНаличияБукв(Стр)
//
// Параметры:
// Стр - текстовая строка
//
// Возвращаемое значение:
// 1 - если в строке есть буквы, иначе 0
Функция глПроверкаНаличияБукв(Знач Стр) Экспорт
ЕстьБуквы = 0;
БуквыКирилица = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
БуквыЛатиница = "ABСDEFGHIJKLMNOPQRSTUVWXYZ";
Для Сч = 1 По СтрДлина(Стр) Цикл
Символ = Сред(Стр, Сч, 1);
Если Найти(БуквыКирилица, Символ) > 0 Тогда
ЕстьБуквы = 1;
Прервать;
ИначеЕсли Найти(БуквыЛатиница, Символ) > 0 Тогда
ЕстьБуквы = 1;
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ЕстьБуквы;
КонецФункции // глПроверкаНаличияБукв()
Только что сама искала как вытащить ярлыки в xls. выгруженной из 1С. В Excel старых версий, где нет дополнительных параметров, представьте себе, в Сервис-Параметры-закладка "Переход"
Проставьте "птичку" Клавиши перемещения, использовавшиеся в Lotus 1-2-3. Вероятно, когда-то 1с-овцы его использовали.
И чудесным образом ярлычки появляются
Даже когда выполняешь вот такой простейший код
ИмяФайла = ПолучитьИмяВременногоФайла("XLSX");
ДокументРезультат.Записать(ИмяФайла,ТипФайлаТабличногоДокумента.XLSX);
ЗапуститьПриложение(ИмяФайла);
Иксель выдает ошибки, что обнаружено содержимое которое не удалось прочитать. После согласия восстановить содержимое выдает текст:
Удаленные записи: Свойства листа из части /xl/worksheets/sheet1.xml
Вывод: пока с XLSX программно работать не получается.
Подскажите пожалуйста как добавить к этому коду Лист(Имя) при сохранение данных в эксель
ТаблицаСохранение = Новый ТабличныйДокумент;
Макет = ЭтотОбъект.ПолучитьМакет("ТаблицаВыгрузки");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьСтрока = Макет.ПолучитьОбласть("Строка");
ТаблицаСохранение.Вывести(ОбластьШапка);
Для Каждого Стр Из ДанныеВыгрузки Цикл
ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, Стр);
ТаблицаСохранение.Вывести(ОбластьСтрока);
КонецЦикла;