Михайлова Татьяна

55
Рейтинг

tmixsam
Татьяна Михайлова



  •   Регистрация: 31.08.2009 (14 лет назад)

  •   Был(а) на сайте: вчера в 09:38

Подписчики 3

Группы

Профессиональный разработчик

Рейтинг 55

Комплект ТОРГ-12, ТОРГ-12, СФ для 1С 8.3 Бухгалтерия предприятия Корп

Отчеты и формы Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 2.0 Россия Бухгалтерский учет Windows Абонемент ($m) Внешняя обработка (ert,epf) Печатные формы Оптовая торговля Производство готовой продукции (работ, услуг)

Внешняя печатная форма "Комплект ТОРГ-12, ТОРГ-12, СФ" для документа "Реализация (акты, накладные)" 1С 8.3 Бухгалтерия предприятия Корп. Проверено на редакции 3.0.39.52. На других версиях и релизах программ не проверяла. В один табличный документ выводятся последовательно печатные формы "ТОРГ-12, ТОРГ-12, СФ" для каждого документа "Реализация", выделенного в списке документов.

1 стартмани

24.09.2015    12801    8    tmixsam    1       

0

Печать табличной части любого документа 1С 7.7 с возможностью вывода дополнительных колонок.

Отчеты и формы Для всех Платформа 1С v7.7 Конфигурации 1cv7 Windows Абонемент ($m) Внешняя обработка (ert,epf) Печатные формы

Печать табличной части любого документа 1С 7.7 с возможностью вывода дополнительных колонок. Например, есть колонка ЕдиницаИзмерения, а надо ЕдиницаИзмерения.ОКЕИ.Код. Возможен отбор строк по значениям основных и дополнительных колонок. Выбор колонок какие выводить, какие нет. Итоги по числовым колонкам.

1 стартмани

19.09.2013    21524    73    tmixsam    6       

7

Справка о доходах за 6 или 3 месяца

Инструменты и обработки Бухгалтер Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 2.5 Россия Бухгалтерский учет Абонемент ($m) Внешняя обработка (ert,epf) Зарплата

Подключить легко Меню → Сервис → Дополнительные отчеты и обработки → Дополнительные внешние обработки. Кнопочка «Добавить», затем кнопочка «Заменить файл внешней обработки». Выбрать скаченную обработку. Внизу «ОК» записываем. Пользоваться там же только кнопку «Добавить» не нажимаем, а щелкаем по строке «Справка за 6 месяцев» вызывая обработку на выполнение. Для сверки данных о зарплате автоматические формируется отчет «Расчетные листки» для выбранного сотрудника и за те же 6 или 3 месяца.

1 стартмани

10.11.2009    12084    313    tmixsam    9       

19

Печать конвертов в 1С и Calc

Отчеты и формы Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Россия Абонемент ($m) Внешняя обработка (ert,epf) Пакетная печать

Вы ещё подписываете бумажные конверты? Тогда это для Вас. Во всех трёх вариантах реализована печать индекса, как на обычном конверте. Шаблон конверта выбран узкий обычный размер 22см на 11см.

1 стартмани

05.11.2009    16609    363    tmixsam    14       

29

Комментарии

DevЗагрузка из xls (как узнать уровень группировки строки?)#6 12.10.23 8:24
А для LibreOffice ? Как при загрузке узнать уровень группировки строки?
DevЗначение не является значение объектного типа (ИсточникОтчета)#11 27.10.22 9:42
Не создавалось "Заявление о зачете налога"
в Меню - Отчеты
надо было выбрать "Уведомления, сообщения и заявления"
вместо "Регламентированные отчеты"

попадаем в одно и то же окно, только сверху выбрана закладка "Уведомления" вместо закладки "Отчеты"

можно зайти в "Регламентированные отчеты" и потом выбрать закладку "Уведомления"
после этого "Заявление о зачете налога" по кнопке "Создать" создалось без проблем
UpdateCFОбновление КА до 1.1.82.2: MemoryMappedFileObject#14 15.12.20 12:28
(11) помогло! Спасибо shmax - выручил!
ОбменБыстрая корректировка правил обмена при добавлении реквизита.#18 20.11.20 14:29
Мне тоже очень помог Ваш пост с кодом!
Спасибо
Dev1С 8: Работаем с файлами MS Excel, используя OpenOffice/LibreOffice#57 27.05.20 8:32
Нашла как из 1С в OpenOffice в файле вставить разрыв по строке
Код
 //Установим разделители страниц, 
         //в списке разделителей номера строк, перед которыми ставим разделитель
         Если спРазделителей <> Неопределено Тогда
            
            Арг3 = Новый COMSafeArray("VT_VARIANT",1);
            Свойства4 = СервисМанагер.Bridge_GetStruct("com.sun.star.beans.PropertyValue");
            Свойства4.Name = "ToPoint";
            Свойства4.Value = "A5";
            Арг3.SetValue(0, Свойства4);

            Диспатчер = СервисМанагер.createInstance("com.sun.star.frame.DispatchHelper");            
            
            oCtrl = Документ.CurrentController;
            oCtrl.setActiveSheet(ЛистДанные);
            oFrame = oCtrl.Frame;

            Для каждого ЭлемРазд Из спРазделителей Цикл
                НомРазд = ЭлемРазд.Значение;
               //ТекЯчейка = ЛистДанные.GetCellbyPosition(1,НомРазд);
               //ТекКурсор = ЛистДанные.createCursorByRange(ТекЯчейка);
               Попытка
                  АдресЯчейки = "A"+СокрЛП(НомРазд+1);
                  АдресЯчейки = СтрЗаменить(АдресЯчейки," ","");
                  Свойства4.Value = АдресЯчейки;
                  Арг3.SetValue(0, Свойства4);
                  
                  //ВСТАВИТЬ на ЛистДанные РАЗРЫВ СТРОКИ перед строкой с номером НомРазд+1?
                  Диспатчер.executeDispatch(oFrame,  ".uno:GoToCell", "", 0, Арг3);
                  Диспатчер.executeDispatch(oFrame, ".uno:InsertRowBreak", "", 0, Арг3);
                  
               Исключение
                  Сообщить("Не удалось установить разрывы страниц в файле: "+ПутьКФайлу);
               КонецПопытки;
            КонецЦикла; 
         КонецЕсли;
Dev1С 8: Работаем с файлами MS Excel, используя OpenOffice/LibreOffice#56 26.05.20 15:18
Код
//Сохраняю таблицу отчета в xls файл
   ТабДок = Новый ТабличныйДокумент;
   
        //Заполняю ТабДок данными
   
   ИмяФ = КаталогВременныхФайлов()+"Задание1.xls";
   ТабДок.Показать("Задание1");
   ТабДок.Записать(ИмяФ, ТипФайлаТабличногоДокумента.XLS97);
   
//В дополнительной процедуре открываю этот файл как ComObject 
//вида Эксель или OpenOffice 
//и заполняю параметры страницы, которые не сохранились при выгрузке в xls файл
   ПараметрыСтраницыЭксельФайла(ИмяФ,"Ландшафт",100,спРазделителей);
   Сообщить("Записан файл: "+ИмяФ);

//Вопрос: Как для OpenOffice в файле вставить разрыв по строке, если знаешь номер строки
//где надо этот разрыв вставлять.

Процедура ПараметрыСтраницыЭксельФайла(Знач ПутьКФайлу,ЛандшафтПортрет,Масштаб,спРазделителей = Неопределено)
   Попытка //Попытка в Excel
      Эксель = Новый COMОбъект("Excel.Application");
      Эксель.Visible = 0;      //0 - Excel не виден, 1 - виден.
      Эксель.DisplayAlerts = False;  //Отключаем всякие вопросы со стороны Excel
      Книга = Эксель.WorkBooks.Open(ПутьКФайлу);
      Лист = Книга.WorkSheets(1);
      //Лист = Книга.WorkSheets(ИмяЛиста);
      //Значение = Лист.Cells(НомерСтроки, НомерКолонки).Value;
      //Лист.Columns(НомерКолонки).ColumnWidth = Ширина;
      Лист.PageSetup.Zoom = Масштаб;
      Лист.PageSetup.Orientation = ?(ЛандшафтПортрет = "Портрет",1,2);
      Лист.PageSetup.LeftMargin = Эксель.CentimetersToPoints(1);   //1 сантиметр
      Лист.PageSetup.TopMargin = Эксель.CentimetersToPoints(1);
      Лист.PageSetup.RightMargin = Эксель.CentimetersToPoints(1);
      Лист.PageSetup.BottomMargin = Эксель.CentimetersToPoints(1);
      
      Если спРазделителей <> Неопределено Тогда
         Для каждого ЭлемРазд Из спРазделителей Цикл
             НомРазд = ЭлемРазд.Значение;
            АдресЯчейки = "A"+СокрЛП(НомРазд);
            АдресЯчейки = СтрЗаменить(АдресЯчейки," ","");
            Лист.HPageBreaks.Add(Лист.Range(АдресЯчейки)); 
         КонецЦикла; 
      КонецЕсли; 
      
      Попытка
         Книга.SaveAs(ПутьКФайлу);
      Исключение
         Сообщить(ОписаниеОшибки()+" Не установлены параметры печати для файла "+ПутьКФайлу);
      КонецПопытки;
      Эксель.WorkBooks.Close();
      Эксель = 0;
      
   Исключение
      //Сообщить(ОписаниеОшибки() + " Программа Exсel не установлена на данном компьютере!");
      Попытка //Попытка в OpenOffice
         //Открыть файл
         Попытка
            СервисМанагер = Новый  COMОбъект("Com.Sun.Star.ServiceManager");
         Исключение
            Сообщить("Не могу создать объект Open Office!
            | - " + ОписаниеОшибки(), СтатусСообщения.ОченьВажное);   
            Возврат;
         КонецПопытки;
   
         МакетОформления = Неопределено;
         // Откроем табличный документ
         Попытка
         Скрипт = новый COMОбъект("MSScriptControl.ScriptControl");
            Скрипт.language = "javascript";
            Скрипт.eval("Massiv=new Array()");             
            Массив = Скрипт.eval("Massiv");
            Скрипт.AddObject("СервисМанагер",СервисМанагер);
            Скрипт.eval("Massiv[0]=СервисМанагер.Bridge_GetStruct('com.sun.star.beans.PropertyValue')");
            Скрипт.eval("Massiv[0].Name='Hidden'");
            Скрипт.eval("Massiv[0].Value=true");
         Исключение
            Сообщить("Не могу открыть объект Open Office, возможно надо использовать 32х разрядную версию 1С!
            | - " + ОписаниеОшибки(), СтатусСообщения.ОченьВажное);   
            Возврат;
         КонецПопытки;
         Стол = СервисМанагер.createInstance("com.sun.star.frame.Desktop");
          Документ = Стол.LoadComponentFromURL(ПривестиФайлКУРЛ(ПутьКФайлу), "_blank", 0,Массив);
         
         Документ.lockControllers();
         Документ.addActionLock();

         Листы=Документ.getSheets();
         ЛистДанные=Листы.getByIndex(0);

         СтилиСтраницы=Документ.StyleFamilies.getByName("PageStyles");
         ПараметрыСтраницы=СтилиСтраницы.getByName(ЛистДанные.PageStyle);

         //Параметры страницы
         
         //Установка полей
         //ПараметрыСтраницы.LeftMargin   = ТабДокумент.ПолеСлева  * 100;
         //ПараметрыСтраницы.RightMargin  = ТабДокумент.ПолеСправа * 100;
         //ПараметрыСтраницы.TopMargin    = ТабДокумент.ПолеСверху * 100;
         //ПараметрыСтраницы.BottomMargin = ТабДокумент.ПолеСнизу  * 100;
         ПараметрыСтраницы.LeftMargin   = 1000;     //1 см
         ПараметрыСтраницы.RightMargin  = 1000;     //1 см
         ПараметрыСтраницы.TopMargin    = 1000;     //1 см
         ПараметрыСтраницы.BottomMargin = 1000;     //1 см

         //Установка ориентации
         //Если ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт Тогда
         Если ЛандшафтПортрет = "Ландшафт" Тогда
            ПараметрыСтраницы.IsLandscape = Истина;
            ПараметрыСтраницы.Width  = 29700;
            ПараметрыСтраницы.Height = 21000;
         Иначе
            ПараметрыСтраницы.IsLandscape = Ложь;
            ПараметрыСтраницы.Width  = 21000;
            ПараметрыСтраницы.Height = 29700;
         КонецЕсли;

         //Установка масштаба печати
         //ПараметрыСтраницы.PageScale = ТабДокумент.МасштабПечати;
         ПараметрыСтраницы.PageScale = Масштаб;

          //Установим разделители страниц, 
         //в списке разделителей номера строк, перед которыми ставим разделитель
         Если спРазделителей <> Неопределено Тогда
            Для каждого ЭлемРазд Из спРазделителей Цикл
                НомРазд = ЭлемРазд.Значение;
               ТекЯчейка = ЛистДанные.GetCellbyPosition(1,НомРазд);
               ТекКурсор = ЛистДанные.createCursorByRange(ТекЯчейка);
               Попытка
                  //АдресЯчейки = "$A$"+СокрЛП(НомРазд);
                  //АдресЯчейки = СтрЗаменить(АдресЯчейки," ","");
                  //ТекКурсор.InsertRowBreak(ТекЯчейка);
                  //ТекКурсор.InsertRowBreak();
                  //Сд.executeDispatch(ЛистДанные, ".uno:InsertRowBreak", "", 0, НомРазд);
                  //КАК ЗДЕСЬ ВСТАВИТЬ на ЛистДанные РАЗРЫВ СТРОКИ перед строкой с номером НомРазд???
                  
               Исключение
                  Сообщить("Не удалось установить разрывы страниц в файле: "+ПутьКФайлу);
               КонецПопытки;
            КонецЦикла; 
         КонецЕсли; 
      
         //Сохранение документа
         Документ.unlockControllers();
         Документ.removeActionLock();
         Документ.store();
         Документ.Close(Истина);

         //Отключаем COM - соединение
         Стол.terminate();         
      Исключение
         Сообщить(ОписаниеОшибки() + " Программы Exсel и OpenOffice Calc не установлены на данном компьютере! Не получилось задать параметры страницы у файла.");
         Возврат;
      КонецПопытки;
   КонецПопытки;
КонецПроцедуры
DevАвтоматическое заполнение шаблонов из дополнительных реквизитов "1С:Документооборот 8".#34 16.03.20 8:33
на 26 ответ

Вывожу в MS Word одно текстовое поле ТабСогласования
в шаблоне файла надо на верхней линейке проставить отметки для табуляции
закладка Вид, галочка Линейка, в верхней линейке ткнуть мышкой, где заканчивается колонка
должность и где заканчивается колонка дата и начинается ФИО

поле ТабСогласования в настройках шаблона в документообороте заполняю так:
получается вручную распределяем по колонкам с помощью символа таб
вручную переносим должность и ФИО на несколько строк если не вмещаются в колонку.

Может кому-нибудь это поможет

Код
РезультатОбработки = "";

Попытка
   Запрос = Новый Запрос;
   Запрос.Текст =    "ВЫБРАТЬ
                     |   ВЫБОР
                     |      КОГДА Согл.Выполнена
                     |         ТОГДА ВЫБОР
                     |               КОГДА Результаты.Результат = ЗНАЧЕНИЕ(Перечисление.ВариантыВыполненияПроцессовИЗадач.Положительно)
                     |                  ТОГДА ""Согласовано""
                     |               КОГДА Результаты.Результат = ЗНАЧЕНИЕ(Перечисление.ВариантыВыполненияПроцессовИЗадач.ПоложительноСЗамечаниями)
                     |                  ТОГДА ""Согласовано""
                     |               ИНАЧЕ ""Не согласовано""
                     |            КОНЕЦ
                     |      ИНАЧЕ ""      ""
                     |   КОНЕЦ КАК Результат,
                     |   Согл.ДатаСогласования КАК Дата,
                     |   Согл.Согласователь,
                     |   ВЫБОР
                     |      КОГДА Согл.Согласователь = Должности.Пользователь
                     |         ТОГДА Должности.Должность
                     |      ИНАЧЕ Согл.СогласовательРоль
                     |   КОНЕЦ КАК Должность,
                     |   Согл.БизнесПроцесс.Дата КАК БизнесПроцессДата,
                     |   Согл.Задача.ТочкаМаршрута КАК ТочкаМаршрута,
                     |   Согл.СогласовательРоль
                     |ИЗ
                     |   (ВЫБРАТЬ
                     |      Задачи.Задача КАК Задача,
                     |      ВнутрДокументы.Докум КАК Докум,
                     |      БизнесПроцессы.БизнесПроцесс КАК БизнесПроцесс,
                     |      Задачи.ДатаИсполнения КАК ДатаСогласования,
                     |      Задачи.Задача.Исполнитель КАК Согласователь,
                     |      БизнесПроцессы.БизнесПроцесс.Дата КАК ДатаБП,
                     |      Задачи.Выполнена КАК Выполнена,
                     |      Задачи.Задача.РольИсполнителя КАК СогласовательРоль
                     |   ИЗ
                     |      (ВЫБРАТЬ
                     |         ВнутренниеДокументы.Ссылка КАК Докум
                     |      ИЗ
                     |         Справочник.ВнутренниеДокументы КАК ВнутренниеДокументы
                     |      ГДЕ
                     |         ВнутренниеДокументы.Ссылка = &ДокумСсылка) КАК ВнутрДокументы
                     |         ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                     |            СогласованиеПредметы.Ссылка КАК БизнесПроцесс,
                     |            СогласованиеПредметы.Предмет КАК Предмет
                     |         ИЗ
                     |            БизнесПроцесс.Согласование.Предметы КАК СогласованиеПредметы
                     |         ГДЕ
                     |            СогласованиеПредметы.Ссылка.ПометкаУдаления = ЛОЖЬ) КАК Предметы
                     |            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                     |               Согласование.Ссылка КАК БизнесПроцесс,
                     |               Согласование.РезультатСогласования КАК РезультатСогласования,
                     |               Согласование.ДатаЗавершения КАК ДатаЗавершения,
                     |               Согласование.Завершен КАК Завершен
                     |            ИЗ
                     |               БизнесПроцесс.Согласование КАК Согласование
                     |            ГДЕ
                     |               Согласование.ПометкаУдаления = ЛОЖЬ) КАК БизнесПроцессы
                     |               ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                     |                  ЗадачаИсполнителя.Ссылка КАК Задача,
                     |                  ЗадачаИсполнителя.ДатаИсполнения КАК ДатаИсполнения,
                     |                  ЗадачаИсполнителя.БизнесПроцесс КАК БизнесПроцесс,
                     |                  ЗадачаИсполнителя.СостояниеБизнесПроцесса КАК СостояниеБизнесПроцесса,
                     |                  ЗадачаИсполнителя.Выполнена КАК Выполнена
                     |               ИЗ
                     |                  Задача.ЗадачаИсполнителя КАК ЗадачаИсполнителя
                     |               ГДЕ
                     |                  ЗадачаИсполнителя.ПометкаУдаления = ЛОЖЬ) КАК Задачи
                     |               ПО БизнесПроцессы.БизнесПроцесс = Задачи.БизнесПроцесс
                     |            ПО Предметы.БизнесПроцесс = БизнесПроцессы.БизнесПроцесс
                     |         ПО ВнутрДокументы.Докум.Ссылка = Предметы.Предмет) КАК Согл
                     |      ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                     |         РезВып.Объект КАК Объект,
                     |         РезВып.Результат КАК Результат
                     |      ИЗ
                     |         РегистрСведений.РезультатыВыполненияПроцессовИЗадач КАК РезВып) КАК Результаты
                     |      ПО Согл.Задача = Результаты.Объект
                     |      ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СведенияОПользователяхДокументооборот КАК Должности
                     |      ПО Согл.Согласователь = Должности.Пользователь
                     |
                     |УПОРЯДОЧИТЬ ПО
                     |   БизнесПроцессДата,
                     |   Согл.ДатаСогласования";

   Запрос.УстановитьПараметр("ДокумСсылка", Файл.ВладелецФайла.Ссылка);

   Результат = Запрос.Выполнить();
    Добавка = "";
    Отбор = Новый Структура("Согласователь");
 
   Если Результат.Пустой() = Ложь Тогда
        ТабРезультат = Результат.Выгрузить();

        Сч = ТабРезультат.Количество();
        Пока Сч > 0 Цикл
             Сч = Сч - 1;
             СтрРез = ТабРезультат.Получить(Сч);
          Если СокрЛП(СтрРез.ТочкаМаршрута) = "Согласовать" Тогда
             Отбор.Согласователь = СтрРез.Согласователь;
                масСтр = ТабРезультат.НайтиСтроки(Отбор);
                Если масСтр.Количество()>1 Тогда
                     Для Каждого Стр Из масСтр Цикл
                            Если Стр <> СтрРез Тогда
                                   ТабРезультат.Удалить(Стр);
                                   Сч = Сч - 1;
                            КонецЕсли;
                     КонецЦикла;
             КонецЕсли;
          Иначе //Задача Ознакомление
                 ТабРезультат.Удалить(СтрРез);
          КонецЕсли;
        КонецЦикла;

        Для Каждого Выборка Из ТабРезультат Цикл
            ФИО = СокрЛП(Выборка.Согласователь.ПредставлениеВДокументах);
            ФИО2 = "";
            Должн = СокрЛП(Выборка.Должность);
            Должн2 = "";
            Если СтрДлина(ФИО)>29 Тогда
               ПробелНом = СтрНайти(ФИО," ");
               ФИО2 = Сред(ФИО,ПробелНом+1);
               ФИО = Лев(ФИО,ПробелНом);
            КонецЕсли;
            Если СтрДлина(Должн)>29 Тогда
               ПробелНом = СтрНайти(Должн," ");
               Должн2 = Сред(Должн,ПробелНом+1);
               Должн = Лев(Должн,ПробелНом);
               ПробелНом = СтрНайти(Должн2," ");
               Пока (ПробелНом > 0) И ((СтрДлина(Должн)+ПробелНом)<29) Цикл
                  Должн = Должн + Лев(Должн2,ПробелНом);
                  Должн2 = Сред(Должн2,ПробелНом+1);
                  ПробелНом = СтрНайти(Должн2," ");
               КонецЦикла;
            КонецЕсли;
            РезультатОбработки = РезультатОбработки+Добавка+ Должн + Символ(9)+СокрЛП(Выборка.Результат) +Символ(9);
            РезультатОбработки = РезультатОбработки+Формат(Выборка.Дата,"ДЛФ=D")+Символ(9)+ ФИО;
                Добавка = Символ(13)+Символ(13);
            Пока (СтрДлина(ФИО2)>0) ИЛИ (СтрДлина(Должн2)>0) Цикл
               ФИО = ФИО2;
               ФИО2 = "";
               Должн = Должн2;
               Должн2 = "";
               Если СтрДлина(ФИО)>29 Тогда
                  ПробелНом = СтрНайти(ФИО," ");
                  ФИО2 = Сред(ФИО,ПробелНом+1);
                  ФИО = Лев(ФИО,ПробелНом);
               КонецЕсли;
               Если СтрДлина(Должн)>29 Тогда
                  ПробелНом = СтрНайти(Должн," ");
                  Должн2 = Сред(Должн,ПробелНом+1);
                  Должн = Лев(Должн,ПробелНом);
                  ПробелНом = СтрНайти(Должн2," ");
                  Пока (ПробелНом > 0) И ((СтрДлина(Должн)+ПробелНом)<29)Цикл
                     Должн = Должн + Лев(Должн2,ПробелНом);
                     Должн2 = Сред(Должн2,ПробелНом+1);
                     ПробелНом = СтрНайти(Должн2," ");
                  КонецЦикла;
               КонецЕсли;
               РезультатОбработки = РезультатОбработки+Символ(13)+Должн+Символ(9)+Символ(9)+Символ(9)+ФИО;
            КонецЦикла;
      КонецЦикла;
   КонецЕсли;
Исключение
КонецПопытки;

РезультатОбработки = ?(РезультатОбработки="","     ",РезультатОбработки);
ПубликацииПередача параметров/значений во внешнюю печатную форму для конфигураций на БСП (1С:Предприятие 8.2/8.3)#46 06.05.19 10:24
У меня была задача перед выполнением печати открыть форму внешней печатной формы,
там указать дополнительные параметры и потом только печатать.
Для этого в форме создала параметр "ОбъектыНазначения" тип Произвольный и обязательно галочку "Ключевой параметр"
иначе при открытии формы этот параметр не заполняется
Затем в процедуре НаКлиенте ПриОткрытииФормы добавила ваш текст

ВыполняемаяКоманда = Параметры;

СтандартнаяОбработка = Истина;
//Проверка на релиз БСП для универсальности.
//Общий модуль ДополнительныеОтчетыИОбработкиКлиентПереопределяемый существует в версии БСП выше 2.0.1.19
Если ЕстьОбщийМодуль("ДополнительныеОтчетыИОбработкиКлиентПереопределяемый") Тогда
Выполнить("ДополнительныеОтчетыИОбработкиКлиентПереопределяемый.ПередВыполнениемКомандыПечатиВнешнейПечатнойФормы(ВыполняемаяКоманда.ОбъектыНазначения, СтандартнаяОбработка);");

Попытка
Для Каждого ОбъектНазначения Из Параметры.ОбъектыНазначения Цикл
Объект.ДокСпр = ОбъектНазначения;
Сообщить(ОбъектНазначения);
Сообщить(ТипЗнч(ОбъектНазначения));
КонецЦикла;
Исключение
КонецПопытки;
КонецЕсли;

потом в процедуры формы
&НаКлиенте
Процедура ПечатьТЧ(Команда)
ТабДок = Новый ТабличныйДокумент;
СтекОповещений = Новый Массив;
ПечатьФормыНаСервере(ТабДок);
ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать("Печать ТЧ");
КонецПроцедуры

&НаСервере
Процедура ПечатьФормыНаСервере(ТабДок)
ЭтотОбъектВПФ = РеквизитФормыВЗначение("Объект");
//МассивОбъектов = Новый Массив;
//МассивОбъектов.Добавить(Объект.ДокСпр);
МассивОбъектов = Параметры.ОбъектыНазначения;

КоллекцияПечатныхФорм = Новый ТаблицаЗначений;
КоллекцияПечатныхФорм.Колонки.Добавить("ТабличныйДокумент");
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("ИмяВРЕГ");
КоллекцияПечатныхФорм.Колонки.Добавить("СинонимМакета");
КоллекцияПечатныхФорм.Колонки.Добавить("Экземпляров");
СтрокаП = КоллекцияПечатныхФорм.Добавить();
СтрокаП.ИмяМакета = "ПечатьТЧ";
СтрокаП.ИмяВРЕГ = ВРег("ПечатьТЧ");
СтрокаП.Экземпляров = 1;
СтрокаП.СинонимМакета = "Печать ТЧ";

ОбъектыПечати = Новый Структура;
ПараметрыВывода = Новый Структура;

ЭтотОбъектВПФ.Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода);
ТабДок = КоллекцияПечатныхФорм[0].ТабличныйДокумент;
КОнецПРоцедуры

Плюс в модуле объекта
Функция СведенияОВнешнейОбработке() Экспорт
...
НоваяКоманда.Использование = "ОткрытиеФормы";
....
КонецФункции

Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
...
КонецПроцедуры

Все благодаря Вашим подробным объяснениям получилось и открыть форму и в форме печать МассивОбъектов сохранить
Спасибо!
DevОтчет на СКД с параметрами на форме#50 02.10.15 9:54
Спасибо очень пригодилось. Просто и доступно.