Публикации

БСП
Разработки

Найдено результатов: 59


Печать БСП по табличному документу

reborn85 30 1 2
	МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");
	ИдентификаторПечатнойФормы = "ПечатьДокумент";
	
	КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
	ПечатнаяФорма = МодульУправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, ИдентификаторПечатнойФормы);
	ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Наименование заголовка'");
	ПечатнаяФорма.ТабличныйДокумент = ТабличныйДокумент;  //указываем подготовленный табличный документ
	ПечатнаяФорма.ТабличныйДокумент.АвтоМасштаб = Истина;  //по ширине страницы

	МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);

Чтение Excel через Табличный документ

chugindanil 16 1
//На клиенте

ДиалогВыбора = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
ДиалогВыбора.Заголовок = "Выберите файл";

Если ДиалогВыбора.Выбрать() Тогда
	ИмяФайла = ДиалогВыбора.ПолноеИмяФайла; 
	Команда1НаСервере(ИмяФайла);
	
КонецЕсли; 


//На сервере

//Вывод в табличный документ

ТабличныйДокумент = Новый ТабличныйДокумент;

ТабличныйДокумент.Прочитать(ИмяФайла, СпособЧтенияЗначенийТабличногоДокумента.Значение);

//вывод в таблицу значений

ПЗ = Новый ПостроительЗапроса;

ПЗ.ИсточникДанных = Новый ОписаниеИсточникаДанных(ТабличныйДокумент.Область());

ПЗ.ДобавлениеПредставлений = ТипДобавленияПредставлений.НеДобавлять;

ПЗ.ЗаполнитьНастройки();

ПЗ.Выполнить();

ТаблицаЗначений = ПЗ.Результат.Выгрузить();

Вывод произвольной Таблицы Значений в Табличный Документ

Вывод произвольной Таблицы Значений (ТЗ) в Табличный Документ. 8.2
Damir 13 1
Процедура ПоказатьТаблицуЗначений(РезультатТЗ )
		
	Построитель = Новый ПостроительОтчета;
	Построитель.ИсточникДанных = Новый ОписаниеИсточникаДанных(РезультатТЗ);
	Построитель.МакетОформления = ПолучитьМакетОформления(СтандартноеОформление.Асфальт);
	
	Построитель.Выполнить();  
	Построитель.ВыводитьЗаголовокОтчета = Истина;
	Построитель.ТекстЗаголовка = "Данные таблицы значений";	

	Для каждого Колонка Из Построитель.ВыбранныеПоля Цикл
	   Колонка.Представление = РезультатТЗ.Колонки[Колонка.Имя].Заголовок;
	КонецЦикла; 

	МакетТД = Новый ТабличныйДокумент;
	Построитель.Вывести(МакетТД);
	ОбластьТД = МакетТД.Область();
	ОбластьТД.ШиринаКолонки = 20;	
	МакетТД.ТолькоПросмотр = Истина;
	МакетТД.ФиксацияСверху = 4;
	МакетТД.ОтображатьЗаголовки = Истина;
	МакетТД.Показать();
		
КонецПроцедуры

Таблица значений в табличный документ

Преобразование таблицы значений в табличный документ без использования построителя.
Nerich 4 1
// Получить табличный документ на основании таблицы значений
//
// Параметры:
//  Таблица - ТаблицаЗначений 
// 
// Возвращаемое значение:
//  ТабличныйДокумент 
//
&НаСервере
Функция ПолучитьТабличныйДокумент(Таблица)
    ТабДокумент = Новый ТабличныйДокумент;
            
    // Выводим заголовок таблицы
    КолонкаИндекс = 0;
    Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
        Колонка = Таблица.Колонки[КолонкаИндекс];
        ТабДокумент.Область(1, КолонкаИндекс + 1, 1, КолонкаИндекс + 1).Текст = Колонка.Имя;  
        КолонкаИндекс = КолонкаИндекс + 1;
    КонецЦикла;
    
    // Выводим строки таблицы
    СтрокаИндекс = 0;
    Пока СтрокаИндекс < Таблица.Количество() Цикл
        Таблица_Строка = Таблица[СтрокаИндекс];
        КолонкаИндекс = 0;
        Пока КолонкаИндекс < Таблица.Колонки.Количество() Цикл
            Колонка = Таблица.Колонки[КолонкаИндекс];
            ТабДокумент.Область(СтрокаИндекс + 2, КолонкаИндекс + 1, СтрокаИндекс + 2, КолонкаИндекс + 1).Текст = Таблица_Строка[Колонка.Имя];  // + 2, т.к. в первой строке выведен заголовок
            КолонкаИндекс = КолонкаИндекс + 1;
        КонецЦикла;        
        СтрокаИндекс = СтрокаИндекс + 1;
    КонецЦикла;
    
    Возврат ТабДокумент;
КонецФункции

Объединить заголовки табличного документа

Нужно использовать функцию после формирования табличного документа
reborn85 30 1 2
Функция ОбработатьЗаголовки(ТабДок)
    ВысотаФ = ТабДок.ФиксацияСверху;
    ШиринаФ = ТабДок.ФиксацияСлева;
    ШиринаТаблицы = ТабДок.ШиринаТаблицы;
    МассивМассивовОбъединяемыхОбластей = Новый Массив;
    МассивОбъединяемыхОбластей = Новый Массив;
    НачальнаяКолонка = ШиринаФ + 1;
    КонечнаяКолонка = ШиринаТаблицы;
    МассивОбъединяемыхОбластей.Добавить(Новый Структура("НачальнаяКолонка, КонечнаяКолонка", НачальнаяКолонка, КонечнаяКолонка));
    МассивМассивовОбъединяемыхОбластей.Добавить(МассивОбъединяемыхОбластей);    
    Строка = 1;
    Пока Строка <= ВысотаФ Цикл
        Если Строка = МассивМассивовОбъединяемыхОбластей.Количество() Тогда
            Для Каждого ОбъединяемаяОбласть Из МассивМассивовОбъединяемыхОбластей[Строка-1] Цикл
                НачальнаяКолонка = ОбъединяемаяОбласть.НачальнаяКолонка;            
                КонечнаяКолонка = ОбъединяемаяОбласть.КонечнаяКолонка;
                Колонка = НачальнаяКолонка;
                Пока Колонка <= КонечнаяКолонка Цикл
                    Если НЕ ОбъединятьЯчейки(ТабДок, Строка, Колонка) ИЛИ Колонка = КонечнаяКолонка Тогда
                        Если Колонка <> НачальнаяКолонка Тогда
                            МассивОбъединяемыхОбластей.Добавить(Новый Структура("НачальнаяКолонка, КонечнаяКолонка", НачальнаяКолонка, Колонка));
                        КонецЕсли;
                        НачальнаяКолонка = Колонка + 1;
                    КонецЕсли;    
                    Колонка = Колонка + 1;
                КонецЦикла;
            КонецЦикла;
            Если МассивОбъединяемыхОбластей.Количество() = 0 И ОбъединяемаяОбласть.НачальнаяКолонка = ШиринаФ + 1 И ОбъединяемаяОбласть.КонечнаяКолонка = ШиринаТаблицы Тогда
                МассивОбъединяемыхОбластей.Добавить(Новый Структура("НачальнаяКолонка, КонечнаяКолонка", ОбъединяемаяОбласть.НачальнаяКолонка, ОбъединяемаяОбласть.КонечнаяКолонка));
            КонецЕсли;    
            МассивМассивовОбъединяемыхОбластей.Добавить(МассивОбъединяемыхОбластей);
            МассивОбъединяемыхОбластей = Новый Массив;
        КонецЕсли;
        Строка = Строка + 1;
    КонецЦикла;
    Строка = 1;
    Пока Строка < МассивМассивовОбъединяемыхОбластей.Количество() Цикл
        Для Каждого ОбъединяемаяОбласть Из МассивМассивовОбъединяемыхОбластей[Строка] Цикл
            ТекстЗаголовка = ТабДок.Область(Строка, ОбъединяемаяОбласть.НачальнаяКолонка).Текст;
            ОбъединяемаяОбласть = ТабДок.Область(Строка, ОбъединяемаяОбласть.НачальнаяКолонка, Строка, ОбъединяемаяОбласть.КонечнаяКолонка);
            ОбъединяемаяОбласть.Объединить();
            ОбъединяемаяОбласть.ГоризонтальноеПоложение = ГоризонтальноеПоложение.Центр;
            ОбъединяемаяОбласть.Текст = ТекстЗаголовка;        
        КонецЦикла;
        Строка = Строка + 1;
    КонецЦикла;
    Возврат ТабДок;
КонецФункции

Функция ОбъединятьЯчейки(ТабДок, Строка, НачальнаяКолонка)
    Ячейка = ТабДок.Область(Строка, НачальнаяКолонка);
    ЯчейкаСлед = ТабДок.Область(Строка, НачальнаяКолонка+1);
    Если ПустаяСтрока(Ячейка.Текст) Тогда
        Возврат ложь
    ИначеЕсли
        Ячейка.Текст = ЯчейкаСлед.Текст
            И Ячейка.Верх = Ячейка.Низ И ЯчейкаСлед.Верх = ЯчейкаСлед.Низ Тогда
        Возврат Истина;
    Иначе
        Возврат ложь;
    КонецЕсли;
КонецФункции

Отправить сообщение или табличный документ в телеграм

Отправить сообщение или табличный документ в телеграм
FOX 16 2
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/// The MIT License
/// 
/// Copyright (c) 2019 Plague Fox
/// 
/// Permission is hereby granted, free of charge, to any person obtaining a copy
/// of this software and associated documentation files (the "Software"), to deal
/// in the Software without restriction, including without limitation the rights
/// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
/// copies of the Software, and to permit persons to whom the Software is
/// furnished to do so, subject to the following conditions:
/// 
/// The above copyright notice and this permission notice shall be included in
/// all copies or substantial portions of the Software.
/// 
/// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
/// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
/// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
/// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
/// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
/// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
/// THE SOFTWARE.
/// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Перем Токен,ИдентификаторПолучателя; // Телеграм
Перем ПроксиПротокол,ПроксиСервер,ПроксиПорт,ПроксиПользователь,ПроксиПароль; // Прокси

Процедура ОтправитьСообщениеВТелеграм(Сообщение)
    // Глобальные переменные в процедуре:
    // + Токен
    // + ИдентификаторПолучателя
    
    // Сформировать соединение и запрос
    Соединение  = ПолучитьСоединение();
    Адрес       = СтрШаблон("/bot%1/sendMessage?chat_id=%2&parse_mode=HTML&text=%3"
                , Токен
                , ИдентификаторПолучателя
                , КодироватьСтроку(Сообщение, СпособКодированияСтроки.КодировкаURL, "UTF8"));
    Заголовки   = Новый Соответствие;
    Запрос      = Новый HTTPЗапрос(Адрес, Заголовки);
    
    // GET
    Ответ       = Соединение.Получить(Запрос);
    
    // Разбор ответа
    Если Ответ.КодСостояния <> 200 Тогда
        ОтветСтрокой    = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
        ВызватьИсключение СтрШаблон("Ошибка отправки вложения в телеграм.
            |Код состояния: %1
            |Тело: %2"
            , Ответ.КодСостояния
            , ОтветСтрокой
        ); 
    КонецЕсли;  
КонецПроцедуры // ОтправитьСообщениеВТелеграм()
//************************************************************
Процедура ОтправитьТабличныйДокументВТелеграм(ТабличныйДокумент, ИмяФайла = "", Сообщение = "")
    // Глобальные переменные в процедуре:
    // + Токен
    // + ИдентификаторПолучателя
    
    // Сформировать тело запроса
    Разделитель     = Строка(Новый УникальныйИдентификатор());
    
    // Формируем основное составное сообщение
    Тело            = Новый ПотокВПамяти();
    ЗаписьДанных    = Новый ЗаписьДанных(Тело, КодировкаТекста.UTF8, ПорядокБайтов.LittleEndian, Символы.ВК + Символы.ПС, Символы.ПС, Истина);
    
    // chat_id
    ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
    ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""chat_id""");
    ЗаписьДанных.ЗаписатьСтроку("");
    ЗаписьДанных.ЗаписатьСтроку(ИдентификаторПолучателя);
    
    // disable_notification
    ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
    ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""disable_notification""");
    ЗаписьДанных.ЗаписатьСтроку("");
    ЗаписьДанных.ЗаписатьСтроку("True");
        
    Если Не ПустаяСтрока(Сообщение) Тогда 
        // caption
        ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
        ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""caption""");
        ЗаписьДанных.ЗаписатьСтроку("");
        ЗаписьДанных.ЗаписатьСтроку(Сообщение);        
        
        // parse_mode
        ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
        ЗаписьДанных.ЗаписатьСтроку("Content-Disposition: form-data; name=""parse_mode""");
        ЗаписьДанных.ЗаписатьСтроку("");
        ЗаписьДанных.ЗаписатьСтроку("HTML");
    КонецЕсли;
    
    // document    
    ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель);
    ЗаписьДанных.ЗаписатьСтроку(СтрШаблон("Content-Disposition: form-data; name=""document""; filename=""%1.pdf""", ?(ПустаяСтрока(ИмяФайла), "document_" + Строка(Новый УникальныйИдентификатор()), ИмяФайла)));
    ЗаписьДанных.ЗаписатьСтроку("Content-Type: application/pdf");
    ЗаписьДанных.ЗаписатьСтроку("");   
    ЗаписьДанных.Закрыть();    
    
    // Добавим файл
    ТабличныйДокумент.Записать(Тело, ТипФайлаТабличногоДокумента.PDF);
    
    // Завершение записи
    ЗаписьДанных    = Новый ЗаписьДанных(Тело, КодировкаТекста.UTF8, ПорядокБайтов.LittleEndian, Символы.ВК + Символы.ПС, Символы.ПС, Ложь);
    ЗаписьДанных.ЗаписатьСтроку("");
    ЗаписьДанных.ЗаписатьСтроку("--" + Разделитель + "--");
    ЗаписьДанных.Закрыть();
    
    ДанныеТела          = Тело.ЗакрытьИПолучитьДвоичныеДанные();   

    // Сформировать соединение и запрос
    Соединение  = ПолучитьСоединение();
    Заголовки   = Новый Соответствие;
    Заголовки.Вставить("Content-Type",      "multipart/form-data; boundary=" + Разделитель);
    Заголовки.Вставить("Accept",            "*/*");
    Заголовки.Вставить("Cache-Control",     "no-cache");
    Заголовки.Вставить("Host",              "api.telegram.org");
    Заголовки.Вставить("Accept-Encoding",   "gzip, deflate");
    Заголовки.Вставить("Content-Length",    Формат(ДанныеТела.Размер(), "ЧДЦ=0; ЧН=0; ЧГ=0"));
    Заголовки.Вставить("Connection",        "close");
    Адрес       = СтрШаблон("/bot%1/sendDocument", Токен);
    Запрос      = Новый HTTPЗапрос(Адрес, Заголовки);
    Запрос.УстановитьТелоИзДвоичныхДанных(ДанныеТела);

    // POST
    Ответ       = Соединение.ОтправитьДляОбработки(Запрос);

    // Разбор ответа
    Если Ответ.КодСостояния <> 200 Тогда
        ОтветСтрокой    = Ответ.ПолучитьТелоКакСтроку(КодировкаТекста.UTF8);
        ВызватьИсключение СтрШаблон("Ошибка отправки вложения в телеграм.
            |Код состояния: %1
            |Тело: %2"
            , Ответ.КодСостояния
            , ОтветСтрокой
        ); 
    КонецЕсли;
КонецПроцедуры // ОтправитьТабличныйДокументВТелеграм()
//************************************************************
Функция ПолучитьСоединение()    
    // Глобальные переменные в процедуре:
    // + ПроксиПротокол
    // + ПроксиСервер
    // + ПроксиПорт
    // + ПроксиПользователь
    // + ПроксиПароль
    
    Прокси      = Новый ИнтернетПрокси(Истина);
    Если ТипЗнч(ПроксиПротокол) = Тип("Строка") И Не ПустаяСтрока(ПроксиПротокол) Тогда
        Прокси.Установить(ПроксиПротокол, ПроксиСервер, ПроксиПорт, ПроксиПользователь, ПроксиПароль, Ложь);
    КонецЕсли;
    SSL         = Новый ЗащищенноеСоединениеOpenSSL();
    Соединение  = Новый HTTPСоединение("api.telegram.org", 443,,, Прокси, 30, SSL, Ложь); 
    Возврат Соединение;
КонецФункции // ПолучитьСоединение()

// ТЕЛЕГРАМ +
Токен                   = ""; // 000000000:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
ИдентификаторПолучателя = ""; // -000000000
// ТЕЛЕГРАМ -

// ПРОКСИ +
ПроксиПротокол          = "https"; // для socks5 - https
ПроксиСервер            = "socks5://0.0.0.0"; // socks5://domain.tld
ПроксиПорт              = 1080; // 1080
ПроксиПользователь      = ""; // user
ПроксиПароль            = ""; // password              
// ПРОКСИ -

ПечатьФайлаСоШтампом

Печать табличного документа со штампом электронной подписи.
ОбщийМодуль.РаботаСФайламиСлужебныйКлиент
Автор: 1С
///////////////////////////////////////////////////////////////////////////////////
// Печать табличного документа со штампом электронной подписи.

Процедура ПечатьФайлаСоШтампом(ТабличныйДокумент) Экспорт
	
	Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.Печать") Тогда
		МодульУправлениеПечатьюКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("УправлениеПечатьюКлиент");
		ИдентификаторПечатнойФормы = "ПрисоединенныйФайл";
		ТабличныйДокумент.Защита = Ложь;
		
		КоллекцияПечатныхФорм = МодульУправлениеПечатьюКлиент.НоваяКоллекцияПечатныхФорм(ИдентификаторПечатнойФормы);
		ПечатнаяФорма = МодульУправлениеПечатьюКлиент.ОписаниеПечатнойФормы(КоллекцияПечатныхФорм, ИдентификаторПечатнойФормы);
		ПечатнаяФорма.СинонимМакета = НСтр("ru = 'Файл со штампом'");
		ПечатнаяФорма.ТабличныйДокумент = ТабличныйДокумент;
		
		МодульУправлениеПечатьюКлиент.ПечатьДокументов(КоллекцияПечатныхФорм);
	Иначе
		ТабличныйДокумент.Напечатать(РежимИспользованияДиалогаПечати.Использовать);
	КонецЕсли;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

ТабличныйДокументПоДвоичнымДанным

Возвращает табличный документ по двоичным данным табличного документа.
ОбщийМодуль.УправлениеПечатью
Автор: 1С
// Возвращает табличный документ по двоичным данным табличного документа.
//
// Параметры:
//  ДвоичныеДанныеДокумента - ДвоичныеДанные - двоичные данные табличного документа.
//
// Возвращаемое значение:
//  ТабличныйДокумент - табличный документ.
//
Функция ТабличныйДокументПоДвоичнымДанным(ДвоичныеДанныеДокумента) Экспорт
	
	ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
	ДвоичныеДанныеДокумента.Записать(ИмяВременногоФайла);
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.Прочитать(ИмяВременногоФайла);
	
	УстановленБезопасныйРежим = БезопасныйРежим();
	Если ТипЗнч(УстановленБезопасныйРежим) = Тип("Строка") Тогда
		УстановленБезопасныйРежим = Истина;
	КонецЕсли;
	
	Если Не УстановленБезопасныйРежим Тогда
		УдалитьФайлы(ИмяВременногоФайла);
	КонецЕсли;
	
	Возврат ТабличныйДокумент;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

ДанныеФайлаДляПечати

ОбщийМодуль.РаботаСФайламиСлужебныйВызовСервера
Автор: 1С
Функция ДанныеФайлаДляПечати(Знач ПрисоединенныйФайл, Знач ИдентификаторФормы = Неопределено) Экспорт
	
	ДанныеФайла = ПолучитьДанныеФайла(ПрисоединенныйФайл, ИдентификаторФормы);
	Расширение = НРег(ДанныеФайла.Расширение);
	Если Расширение = "mxl" Тогда
		ДвоичныеДанныеФайла = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла);
		ИмяВременногоФайла = ПолучитьИмяВременногоФайла();
		ДвоичныеДанныеФайла.Записать(ИмяВременногоФайла);
		ТабличныйДокумент = Новый ТабличныйДокумент;
		ТабличныйДокумент.Прочитать(ИмяВременногоФайла);
		УстановленБезопасныйРежим = БезопасныйРежим() <> Ложь;
		
		Если ТипЗнч(УстановленБезопасныйРежим) = Тип("Строка") Тогда
			УстановленБезопасныйРежим = Истина;
		КонецЕсли;
	
		Если Не УстановленБезопасныйРежим Тогда
			УдалитьФайлы(ИмяВременногоФайла);
		КонецЕсли;
		ДанныеФайла.Вставить("ТабличныйДокумент", ТабличныйДокумент);
	КонецЕсли;
	
	Возврат ДанныеФайла;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

УбратьПодписьИПечать

ОбщийМодуль.УправлениеПечатью
Автор: 1С
Процедура УбратьПодписьИПечать(ТабличныйДокумент, СкрыватьПодписиИПечати = Ложь) Экспорт
	
	УдаляемыеРисунки = Новый Массив;
	Для Каждого Рисунок Из ТабличныйДокумент.Рисунки Цикл
		Если ЭтоПодписьИлиПечать(Рисунок) Тогда
			Рисунок.Картинка = Новый Картинка;
			Рисунок.Линия = Новый Линия(ТипЛинииРисункаТабличногоДокумента.НетЛинии);
			Если СкрыватьПодписиИПечати Тогда
				УдаляемыеРисунки.Добавить(Рисунок);
			КонецЕсли;
		КонецЕсли;
	КонецЦикла;
	
	Для Каждого Рисунок Из УдаляемыеРисунки Цикл
		ТабличныйДокумент.Рисунки.Удалить(Рисунок);
	КонецЦикла;
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

НапечататьЗаявление

ОбщийМодуль.МенеджерСервисаКриптографии
Автор: 1С
Функция НапечататьЗаявление(ИдентификаторЗаявления, ИдентификаторПроверки, ИдентификаторСертификата) Экспорт
	
	URL = АдресСервиса() + СтрШаблон("/hs/otp/%1/phone/request/%2",
										ВерсияПрограммногоИнтерфейса_v1_1(),
										ИдентификаторЗаявления);
										
	ПараметрыЗапроса = Новый Структура("client", ПолучитьОписаниеКлиента());
	ПараметрыЗапроса.Вставить("phone", ИдентификаторПроверки);
	ПараметрыЗапроса.Вставить("cert_id", ИдентификаторСертификата);
	
	Результат = ВызватьHTTPМетод("POST", URL, ПараметрыЗапроса, Новый Структура);
	Если Результат.Выполнено Тогда
		ИмяВременногоФайла = ПолучитьИмяВременногоФайла("mxl");
		Результат.Файл.Записать(ИмяВременногоФайла);
		
		ТабличныйДокумент = Новый ТабличныйДокумент;
		ТабличныйДокумент.Прочитать(ИмяВременногоФайла);
		
		УдалитьФайлы(ИмяВременногоФайла);
		
		Результат.Файл = ТабличныйДокумент;
	КонецЕсли;
	
	Возврат Результат;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

ПечатныеФормыПоОбъектам

ОбщийМодуль.УправлениеПечатью
Автор: 1С
Функция ПечатныеФормыПоОбъектам(ПечатнаяФорма, ОбъектыПечати) Экспорт
	
	Если ОбъектыПечати.Количество() = 0 Тогда
		Возврат Новый Структура("ОбъектыПечатиНеЗаданы", ПечатнаяФорма);
	КонецЕсли;
	
	Результат = Новый Соответствие;
	
	Для Каждого ОбъектПечати Из ОбъектыПечати Цикл
		ИмяОбласти = ОбъектПечати.Представление;
		Область = ПечатнаяФорма.Области.Найти(ИмяОбласти);
		Если Область = Неопределено Тогда
			Продолжить;
		КонецЕсли;
		
		Если ОбъектыПечати.Количество() = 1 Тогда
			ТабличныйДокумент = ПечатнаяФорма;
		Иначе
			ТабличныйДокумент = ПечатнаяФорма.ПолучитьОбласть(Область.Верх, , Область.Низ);
			ЗаполнитьЗначенияСвойств(ТабличныйДокумент, ПечатнаяФорма, КопируемыеСвойстваТабличногоДокумента());
		КонецЕсли;
		
		Результат.Вставить(ОбъектПечати.Значение, ТабличныйДокумент);
	КонецЦикла;
	
	Возврат Результат;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

ПакетДокументов

Формирует пакет документов для отправки на принтер.
ОбщийМодуль.УправлениеПечатью
Автор: 1С
// Формирует пакет документов для отправки на принтер.
Функция ПакетДокументов(ТабличныеДокументы, ОбъектыПечати, ПечататьКомплектами, КоличествоЭкземпляров = 1) Экспорт
	
	ПакетОтображаемыхДокументов = Новый ПакетОтображаемыхДокументов;
	ПакетОтображаемыхДокументов.РазборПоКопиям = Истина;
	КоллекцияПечатныхФорм = ТабличныеДокументы.ВыгрузитьЗначения();
	
	Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
		ПечататьКомплектами = ПечататьКомплектами Или ПечатнаяФорма.ДвусторонняяПечать <> ТипДвустороннейПечати.Нет;
	КонецЦикла;
	
	Если ПечататьКомплектами И ОбъектыПечати.Количество() > 1 Тогда 
		Для Каждого ОбъектПечати Из ОбъектыПечати Цикл
			ИмяОбласти = ОбъектПечати.Представление;
			Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
				Область = ПечатнаяФорма.Области.Найти(ИмяОбласти);
				Если Область = Неопределено Тогда
					Продолжить;
				КонецЕсли;
				
				ТабличныйДокумент = ПечатнаяФорма.ПолучитьОбласть(Область.Верх, , Область.Низ);
				ЗаполнитьЗначенияСвойств(ТабличныйДокумент, ПечатнаяФорма, КопируемыеСвойстваТабличногоДокумента());
				
				ПакетОтображаемыхДокументов.Состав.Добавить().Данные = ПакетСОднимТабличнымДокументом(ТабличныйДокумент);
			КонецЦикла;
		КонецЦикла;
	Иначе
		Для Каждого ПечатнаяФорма Из КоллекцияПечатныхФорм Цикл
			ТабличныйДокумент = Новый ТабличныйДокумент;
			ТабличныйДокумент.Вывести(ПечатнаяФорма);
			ЗаполнитьЗначенияСвойств(ТабличныйДокумент, ПечатнаяФорма, КопируемыеСвойстваТабличногоДокумента());
			ПакетОтображаемыхДокументов.Состав.Добавить().Данные = ПакетСОднимТабличнымДокументом(ТабличныйДокумент);
		КонецЦикла;
	КонецЕсли;
	
	ПакетКомплектов = Новый ПакетОтображаемыхДокументов;
	ПакетКомплектов.РазборПоКопиям = Истина;
	Для Номер = 1 По КоличествоЭкземпляров Цикл
		ПакетКомплектов.Состав.Добавить().Данные = ПакетОтображаемыхДокументов;
	КонецЦикла;
	
	Возврат ПакетКомплектов;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

ТабличныйДокументСоШтампом

Печать табличного документа со штампом электронной подписи.
ОбщийМодуль.РаботаСФайламиСлужебныйВызовСервера
Автор: 1С
///////////////////////////////////////////////////////////////////////////////////
// Печать табличного документа со штампом электронной подписи.

Функция ТабличныйДокументСоШтампом(СсылкаНаФайл, Ссылка) Экспорт
	
	ДанныеФайла    = РаботаСФайлами.ДанныеФайла(СсылкаНаФайл);
	ВременныйФайл = ПолучитьИмяВременногоФайла(".mxl");
	ДвоичныеДанные = ПолучитьИзВременногоХранилища(ДанныеФайла.СсылкаНаДвоичныеДанныеФайла);
	ДвоичныеДанные.Записать(ВременныйФайл);
	
	ТабличныйДокумент = Новый ТабличныйДокумент;
	ТабличныйДокумент.Прочитать(ВременныйФайл);
	
	УдалитьФайлы(ВременныйФайл);
	
	МодульЭлектроннаяПодпись = ОбщегоНазначения.ОбщийМодуль("ЭлектроннаяПодпись");
	
	ПараметрыШтампа = Новый Структура;
	ПараметрыШтампа.Вставить("ТекстОтметки", "");
	ПараметрыШтампа.Вставить("Логотип");
	
	ЭлектронныеПодписи = МодульЭлектроннаяПодпись.УстановленныеПодписи(Ссылка);
	
	ВладелецФайла = ОбщегоНазначения.ЗначениеРеквизитаОбъекта(Ссылка, "ВладелецФайла");
	
	СведенияОФайле = Новый Структура;
	СведенияОФайле.Вставить("ВладелецФайла", ВладелецФайла);
	
	Штампы = Новый Массив;
	Для Каждого Подпись Из ЭлектронныеПодписи Цикл
		Сертификат = Подпись.Сертификат;
		СертификатКриптографии = Новый СертификатКриптографии(Сертификат.Получить());
		РаботаСФайламиПереопределяемый.ПриПечатиФайлаСоШтампом(ПараметрыШтампа, СертификатКриптографии);
		
		Штамп = МодульЭлектроннаяПодпись.ШтампВизуализацииЭлектроннойПодписи(СертификатКриптографии,
			Подпись.ДатаПодписи, ПараметрыШтампа.ТекстОтметки, ПараметрыШтампа.Логотип);
		Штампы.Добавить(Штамп);
	КонецЦикла;
	
	МодульЭлектроннаяПодпись.ДобавитьШтампыВТабличныйДокумент(ТабличныйДокумент, Штампы);
	
	Возврат ТабличныйДокумент;
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

ПередСохранениемТабличногоДокументаВФормат

Позволяет определить свой обработчик для сохранения табличного документа в формат.
ОбщийМодуль.РассылкаОтчетовПереопределяемый
Автор: 1С
// Позволяет определить свой обработчик для сохранения табличного документа в формат.
// Важно:
//   Если используется нестандартная обработка (СтандартнаяОбработка меняется на Ложь),
//   тогда ПолноеИмяФайла должно содержать полное имя файла с расширением.
//
// Параметры:
//   СтандартнаяОбработка - Булево - признак использования стандартных механизмов подсистемы для сохранения в формат.
//   ТабличныйДокумент    - ТабличныйДокумент - сохраняемый табличный документ.
//   Формат               - ПеречислениеСсылка.ФорматыСохраненияОтчетов - формат, в котором сохраняется табличный
//                                                                        документ.
//   ПолноеИмяФайла       - Строка - полное имя файла.
//       Передается без расширения, если формат был добавлен в прикладной конфигурации.
//
// Пример:
//	Если Формат = Перечисления.ФорматыСохраненияОтчетов.HTML4 Тогда
//		СтандартнаяОбработка = Ложь;
//		ПолноеИмяФайла = ПолноеИмяФайла +".html";
//		ТабличныйДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.HTML4);
//	КонецЕсли;
//
Процедура ПередСохранениемТабличногоДокументаВФормат(СтандартнаяОбработка, ТабличныйДокумент, Формат, ПолноеИмяФайла) Экспорт
	
	// _Демо начало примера
	
	Если Формат = Перечисления.ФорматыСохраненияОтчетов._ДемоHTML3 Тогда
		СтандартнаяОбработка = Ложь;
		ПолноеИмяФайла = ПолноеИмяФайла +".html";
		ТабличныйДокумент.Записать(ПолноеИмяФайла, ТипФайлаТабличногоДокумента.HTML3);
	КонецЕсли;
	
	// _Демо конец примера
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

УстановитьКолонтитулы

Устанавливает колонтитулы в табличном документе.
ОбщийМодуль.УправлениеКолонтитулами
Автор: 1С
// Устанавливает колонтитулы в табличном документе.
//
// Параметры:
//  ТабличныйДокумент - ТабличныйДокумент - документ, в котором надо установить колонтитулы.
//  НазваниеОтчета - Строка - значение параметра, которое будет подставлено в шаблон.
//  Пользователь - СправочникСсылка.Пользователи - значение параметра, которое будет подставлено в шаблон.
//  НастройкиКолонтитулов - Структура - индивидуальные настройки колонтитулов.
//
Процедура УстановитьКолонтитулы(ТабличныйДокумент, НазваниеОтчета = "", Пользователь = Неопределено, НастройкиКолонтитулов = Неопределено) Экспорт
	Если Пользователь = Неопределено Тогда
		Пользователь = Пользователи.АвторизованныйПользователь();
	КонецЕсли;
	
	Если НастройкиКолонтитулов = Неопределено Тогда 
		НастройкиКолонтитулов = НастройкиКолонтитулов();
	КонецЕсли;
	
	СвойстваКолонтитула = СвойстваКолонтитула(НастройкиКолонтитулов.ВерхнийКолонтитул, НазваниеОтчета, Пользователь);
	ЗаполнитьЗначенияСвойств(ТабличныйДокумент.ВерхнийКолонтитул, СвойстваКолонтитула);
	
	СвойстваКолонтитула = СвойстваКолонтитула(НастройкиКолонтитулов.НижнийКолонтитул, НазваниеОтчета, Пользователь);
	ЗаполнитьЗначенияСвойств(ТабличныйДокумент.НижнийКолонтитул, СвойстваКолонтитула);
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

ТабличныйДокументИзПрисоединенногоФайла

Выполняет извлечение табличного документа из zip-архива присоединенного файла.
ОбщийМодуль.ПроверкаИКорректировкаДанных
Автор: 1С
// Выполняет извлечение табличного документа из zip-архива присоединенного файла.
//
// Параметры:
//   ПрисоединенныйФайл - СправочникСсылка.ИсторияПроверкиИКорректировкиДанныхПрисоединенныеФайлы - файл из которого
//      требуется извлечь табличный документ.
//
// Возвращаемое значение:
//   ТабличныйДокумент - табличный документ извлеченный из архива. Если табличный документ не
//      найден, то будет вызвано исключение.
//
Функция ТабличныйДокументИзПрисоединенногоФайла(ПрисоединенныйФайл) Экспорт
	
	Если Не ВнедренаБСП() Тогда
		ВызватьИсключение НСтр("ru = 'Метод поддерживается только в конфигурациях, в которых внедрена БСП.'");
	КонецЕсли;
	
	ВременныйКаталог = ПолучитьИмяВременногоФайла();
	СоздатьКаталог(ВременныйКаталог);
	
	ИмяФайлаАрхива = ВременныйКаталог + ПолучитьРазделительПути() + "1.zip";
	
	Если Не ОбщегоНазначения.СсылкаСуществует(ПрисоединенныйФайл) Тогда
		ВызватьИсключение НСтр("ru = 'Присоединенный файл не существует.'");
	КонецЕсли;
	
	ДвоичныеДанные = Модуль("РаботаСФайлами").ДвоичныеДанныеФайла(ПрисоединенныйФайл);
	ДвоичныеДанные.Записать(ИмяФайлаАрхива);
	
	ЧтениеZipФайла = Новый ЧтениеZipФайла(ИмяФайлаАрхива);
	
	ТабличныйДокумент = Неопределено;
	Для Каждого ЭлементАрхива Из ЧтениеZipФайла.Элементы Цикл
		Если ЭлементАрхива.Расширение = "mxl" Тогда
			ЧтениеZipФайла.Извлечь(ЭлементАрхива, ВременныйКаталог, РежимВосстановленияПутейФайловZIP.НеВосстанавливать); 
			ТабличныйДокумент = Новый ТабличныйДокумент;
			ТабличныйДокумент.Прочитать(ВременныйКаталог + ПолучитьРазделительПути() + ЭлементАрхива.Имя);
			Прервать;
		КонецЕсли;
	КонецЦикла;
	
	Если ТабличныйДокумент = Неопределено Тогда
		ВызватьИсключение НСтр("ru = 'Присоединенный файл не содержит табличный документ.'");
	КонецЕсли;
	
	УдалитьФайлы(ВременныйКаталог);
	
	Возврат ТабличныйДокумент;
	
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

ПакетыСтраниц

Глобальные настройки подсистемы.
ОбщийМодуль.ИнформацияПриЗапуске
Автор: 1С
// Глобальные настройки подсистемы.
Функция ПакетыСтраниц(НосительМакетов) Экспорт
	Результат = Новый ТаблицаЗначений;
	Результат.Колонки.Добавить("НомерВРегистре",                Новый ОписаниеТипов("Число"));
	Результат.Колонки.Добавить("Идентификатор",                 Новый ОписаниеТипов("Строка"));
	Результат.Колонки.Добавить("ИмяМакета",                     Новый ОписаниеТипов("Строка"));
	Результат.Колонки.Добавить("Раздел",                        Новый ОписаниеТипов("Строка"));
	Результат.Колонки.Добавить("НаименованиеСтартовойСтраницы", Новый ОписаниеТипов("Строка"));
	Результат.Колонки.Добавить("ИмяФайлаСтартовойСтраницы",     Новый ОписаниеТипов("Строка"));
	Результат.Колонки.Добавить("ДатаНачалаПоказа",              Новый ОписаниеТипов("Дата"));
	Результат.Колонки.Добавить("ДатаОкончанияПоказа",           Новый ОписаниеТипов("Дата"));
	Результат.Колонки.Добавить("Приоритет",                     Новый ОписаниеТипов("Число"));
	Результат.Колонки.Добавить("ПоказыватьВПроф",               Новый ОписаниеТипов("Булево"));
	Результат.Колонки.Добавить("ПоказыватьВБазовой",            Новый ОписаниеТипов("Булево"));
	Результат.Колонки.Добавить("ПоказыватьВМоделиСервиса",      Новый ОписаниеТипов("Булево"));
	
	НомерВРегистре = 0;
	
	// Чтение макета "Описатель".
	ТабличныйДокумент = НосительМакетов.ПолучитьМакет("Описатель");
	Для НомерСтроки = 3 По ТабличныйДокумент.ВысотаТаблицы Цикл
		ПрефиксСтроки = "R"+ НомерСтроки +"C";
		
		// Чтение данных первой колонки.
		ИмяМакета = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 1, , "КонецТаблицы");
		Если ВРег(ИмяМакета) = ВРег("КонецТаблицы") Тогда
			Прервать;
		КонецЕсли;
		
		НаименованиеСтартовойСтраницы = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 3);
		Если Не ЗначениеЗаполнено(НаименованиеСтартовойСтраницы) Тогда
			Продолжить;
		КонецЕсли;
		
		НомерВРегистре = НомерВРегистре + 1;
		
		// Регистрация информации о команде.
		СтрокаТаблицы = Результат.Добавить();
		СтрокаТаблицы.НомерВРегистре                = НомерВРегистре;
		СтрокаТаблицы.ИмяМакета                     = ИмяМакета;
		СтрокаТаблицы.Идентификатор                 = Строка(НомерСтроки - 2);
		СтрокаТаблицы.Раздел                        = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 2);
		СтрокаТаблицы.НаименованиеСтартовойСтраницы = НаименованиеСтартовойСтраницы;
		СтрокаТаблицы.ИмяФайлаСтартовойСтраницы     = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 4);
		СтрокаТаблицы.ДатаНачалаПоказа              = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 5, "Дата", '00010101');
		СтрокаТаблицы.ДатаОкончанияПоказа           = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 6, "Дата", '29990101');
		
		Если НРег(СтрокаТаблицы.Раздел) = НРег(НСтр("ru = 'Реклама'")) Тогда
			СтрокаТаблицы.Приоритет = 0;
		Иначе
			СтрокаТаблицы.Приоритет = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 7, "Число", 0);
			Если СтрокаТаблицы.Приоритет = 0 Тогда
				СтрокаТаблицы.Приоритет = 99;
			КонецЕсли;
		КонецЕсли;
		
		СтрокаТаблицы.ПоказыватьВПроф          = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 8, "Булево", Истина);
		СтрокаТаблицы.ПоказыватьВБазовой       = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 9, "Булево", Истина);
		СтрокаТаблицы.ПоказыватьВМоделиСервиса = ДанныеЯчейки(ТабличныйДокумент, ПрефиксСтроки, 10, "Булево", Истина);
		
	КонецЦикла;
	
	Возврат Результат;
КонецФункции

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

ПриПодготовкеМакетаОписанияОбновлений

Вызывается при подготовке табличного документа с описанием изменений системы.
ОбщийМодуль.ОбновлениеИнформационнойБазыБИП
Автор: 1С
// Вызывается при подготовке табличного документа с описанием изменений системы.
//
// Параметры:
//  Макет - ТабличныйДокумент - описание обновлений. См. также общий макет ОписаниеИзмененийСистемы.
//
Процедура ПриПодготовкеМакетаОписанияОбновлений(Знач Макет) Экспорт
	
	
	
КонецПроцедуры

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////

СформироватьПечатныеФормыДляБыстройПечати

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

///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются 
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////