1с как загрузить макет из mxl
В общем понадобилось клиенту сгенерировать много внешних печатных форм с отличающимися визуально макетами(где то шрифт изменить, где то картинку добавить), естественно код сделан быстро - остальное делать не охота. Предоставил ему делать то, что он хочет.
Продолжая мысль, и написав универсально модуль заполнения Табличного документа, можно в режиме 1С перемещать параметры, т.е. расположение к примеру Представления заказчика независимо от его расположения в макете, хоть в подвале пусть пользователь его выведет, только правильно назовет параметр.
1С:Предприятие 8.2 (8.2.14.533), Управление торговлей, редакция 11.0 (11.0.7.2)
Макеты можем отредактировать на Администрирование - Макеты печатных форм. Наши будут в самом низу
Режим конфигуратор, изменения:
Регистр Сведений - ПользовательскиеМакетыПечати
Открываем форму МакетыПечатныхФорм и вносим следующие изменения
Процедура ЗаполнитьСписокМетаданных ( Фильтр = Неопределено)
СписокМакетовДерево = РеквизитФормыВЗначение ( "СписокМакетов" );
ЗаполнитьДеревоПоКоллекцииМетаданных ( СписокМакетовДерево , Метаданные . Документы , Ложь, Фильтр );
ЗаполнитьДеревоПоКоллекцииМетаданных ( СписокМакетовДерево , Метаданные . Обработки , Ложь);
ЗаполнитьДеревоПоКоллекцииМетаданных ( СписокМакетовДерево , Метаданные . ОбщиеМакеты , Истина);
Если СписокМакетовДерево . Строки . Количество () > 0 Тогда
Функция ПолучитьМакет ( ПолныйПутьКМакету ) Экспорт
ЧастиПути = СтрЗаменить ( ПолныйПутьКМакету , "." , Символы . ПС );
Если СтрЧислоСтрок ( ЧастиПути ) = 3 Тогда
Запрос = Новый Запрос ;
Запрос . Текст =
"ВЫБРАТЬ
| ПользовательскиеМакетыПечати.ИмяМакета,
| ПользовательскиеМакетыПечати.Объект,
| ПользовательскиеМакетыПечати.Макет,
| ПользовательскиеМакетыПечати.Использование
|ИЗ
| РегистрСведений.ПользовательскиеМакетыПечати КАК ПользовательскиеМакетыПечати
|ГДЕ
| ПользовательскиеМакетыПечати.Объект ПОДОБНО &Объект" ;
Запрос . УстановитьПараметр ( "Объект" , "%" + СтрокаУИД + "%" );
Результат = Запрос . Выполнить ();
ВыборкаДетальныеЗаписи = Результат . Выбрать ();
Если ВыборкаДетальныеЗаписи . Следующий () Тогда
абМакет = ВыборкаДетальныеЗаписи . Макет . Получить ();
Результат = ПолучитьТабличныйДокументПоДвоичнымДанным ( абМакет );
Возврат Результат ;
Иначе
Если абОбъект <> Справочники . ДополнительныеОтчетыИОбработки . ПустаяСсылка () Тогда
абОбработкаEPF = абОбъект . ХранилищеОбработки . Получить ();
ИмяВременногоФайла = ПолучитьИмяВременногоФайла ();
абОбработкаEPF . Записать ( ИмяВременногоФайла );
абОбработка = ВнешниеОбработки . Создать ( ИмяВременногоФайла );
абМакет = абОбработка . ПолучитьМакет ( "аб_ПФ_MXL_Заказ" );
Возврат абМакет ;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Иначе
ПутьКМетаданным = СтрПолучитьСтроку ( ЧастиПути , 1 ) + "." + СтрПолучитьСтроку ( ЧастиПути , 2 );
ПутьКОбъектуМетаданных = СтрПолучитьСтроку ( ЧастиПути , 3 );
КонецЕсли;
//ПутьКМетаданным = СтрПолучитьСтроку(ЧастиПути, 1) + "." + СтрПолучитьСтроку(ЧастиПути, 2);
//ПутьКОбъектуМетаданных = СтрПолучитьСтроку(ЧастиПути, 3);
//-gavrikprog
ИначеЕсли СтрЧислоСтрок ( ЧастиПути ) = 2 Тогда
ПутьКМетаданным = СтрПолучитьСтроку ( ЧастиПути , 1 );
ПутьКОбъектуМетаданных = СтрПолучитьСтроку ( ЧастиПути , 2 );
Иначе
ВызватьИсключение НСтр ( "ru = 'Некорректные параметры функции.'" );
КонецЕсли;
Процедура ПечатьПоВнешнемуИсточнику ( ИсточникДанных ,
ПараметрыИсточника ,
КоллекцияПечатныхФорм ,
ОбъектыПечати ,
ПараметрыВывода ) Экспорт
КоллекцияПечатныхФорм = УправлениеПечатью . ПодготовитьКоллекциюПечатныхФорм ( ПараметрыИсточника . ИдентификаторКоманды );
ПараметрыВывода = УправлениеПечатью . ПодготовитьСтруктуруПараметровВывода ();
ОбъектыПечати = Новый СписокЗначений ;
ВнешняяОбработкаОбъект = ПолучитьОбъектВнешнейОбработки ( ИсточникДанных , ПараметрыИсточника . БезопасныйРежим );
//+gavrikprog
ПараметрыВывода . Вставить ( "абОбработка" , ИсточникДанных );
//-gavrikprog
Изменения во внешней обработке:
Когда получаем макет выполняем свою функцию(тут сами крутитесь - думаю несложно)
но когда получаем макет -
Макет = абПолучитьМакет ( абОбработка );
В модуле объекта внешней формы;
Процедура Печать ( МассивОбъектов ,
КоллекцияПечатныхФорм ,
ОбъектыПечати ,
ПараметрыВывода ) Экспорт
//+gavrikprog
ПараметрыВывода . Свойство ( "абОбработка" , абОбработка );
//-gavrikprog
ПараметрыВывода . ДоступнаПечатьПоКомплектно = Истина;
Если УправлениеПечатью . НужноПечататьМакет ( КоллекцияПечатныхФорм , "Заказ" ) Тогда
УправлениеПечатью . ВывестиТабличныйДокументВКоллекцию (
КоллекцияПечатныхФорм ,
"Заказ" , "заказ" ,
абПечатьЗаказ ( МассивОбъектов , ОбъектыПечати ), ,
"Документ.абЗаказНаПеревозку.ПФ_MXL_Заказ" );
КонецЕсли;
//+gavrikprog
Функция абПолучитьМакет ( СсылкаНаЭлементСправочникаДополнительныеОтчетыИОбработки )
УстановитьПривилегированныйРежим (Истина);
Результат1 = ПолучитьМакет ( "аб_ПФ_MXL_Заказ" );
Если абОбработка <>Неопределено Тогда
СтрокаУИД = Строка ( СсылкаНаЭлементСправочникаДополнительныеОтчетыИОбработки . УникальныйИдентификатор ());
Запрос = Новый Запрос ;
Запрос . Текст =
"ВЫБРАТЬ
| ПользовательскиеМакетыПечати.ИмяМакета,
| ПользовательскиеМакетыПечати.Объект,
| ПользовательскиеМакетыПечати.Макет,
| ПользовательскиеМакетыПечати.Использование
|ИЗ
| РегистрСведений.ПользовательскиеМакетыПечати КАК ПользовательскиеМакетыПечати
|ГДЕ
| ПользовательскиеМакетыПечати.Объект ПОДОБНО &Объект" ;
Запрос . УстановитьПараметр ( "Объект" , "%" + СтрокаУИД + "%" );
Результат = Запрос . Выполнить ();
ВыборкаДетальныеЗаписи = Результат . Выбрать ();
Если ВыборкаДетальныеЗаписи . Следующий () Тогда
абМакет = ВыборкаДетальныеЗаписи . Макет . Получить ();
Результат1 = ПолучитьТабличныйДокументПоДвоичнымДанным ( абМакет );
КонецЕсли;
Возврат Результат1 ;
КонецФункции
Функция ПолучитьТабличныйДокументПоДвоичнымДанным ( ДвоичныеДанные ) Экспорт
ИмяВременногоФайла = ПолучитьИмяВременногоФайла ();
ДвоичныеДанные . Записать ( ИмяВременногоФайла );
ТабличныйДокумент = Новый ТабличныйДокумент ;
ТабличныйДокумент . Прочитать ( ИмяВременногоФайла );
//УдалитьФайлы(ИмяВременногоФайла);
В программе «Кинт: Управление санаторием» поддерживается:
- Загрузка данных в некоторые справочники из файлов-макетов формата MXL (описано на этой странице)
В программе «Кинт: Управление санаторием» поддерживается загрузка данных в некоторые справочники из файлов-макетов формата MXL.
Реализованы следующие загрузки данных:
На формах загрузки услуг, загрузки медицинских показателей и загрузки территориальных образований по умолчанию отображается содержание файла макета загрузки данных из интернета. Зеленым цветом отмечаются уже загруженные в программу данные. Каждая из этих форм загрузки имеет свой индивидуальный интерфейс.
На формах загрузки медикаментов, видов удостоверений, страховых компаний, органов выдачи документов и пунктов пересечения границ в списке отображаются данные, которые есть в макете, но нет в базе в программе. Если список пуст, значит между макетом и содержанием справочника нет различий. Эти формы загрузки имеют свой единый интерфейс.
MXL-макет
MXL-макет — файл в формате MXL — табличный документ, который можно открыть в любой программе, работающей с табличными документами, например, MS Excel.
MXL-макет со списком данных (услуг, территориальных образований, медикаментов, видов удостоверений, страховых компаний, органов выдачи документов и пунктов пересечения границ) создается и поддерживается разработчиками программы «Кинт: Управление санаторием» и находится в интернете. Макет создается в соответствии с законодательством.
Макет удобен для загрузки большого списка данных в базу программы «Кинт: Управление санаторием».
Макет территориальных образований составлен по данным ФИАС.
Макет видов удостоверений составлен по данным налоговых органов и ПФР.
Макет страховых компаний составлен по данным федерального фонда обязательного медицинского страхования.
Загрузка данных без использования макета
Загрузка данных с использованием макета
Выбранные элементы загрузятся в базу.
Формы загрузки
Загрузка медикаментов
Поиск данных по части их названия. Введите часть названия элемента и нажмите Enter — программа отобразит в списке строки, в которых содержится введенная комбинация символов. Чтобы снова отобразить весь список, удалите текст из поля и нажмите Enter.
Путь к файлу
Путь к скачанному ранее и измененному файлу MXL-макета. Это поле нужно заполнять, если вы изменяли макет с данными и хотите загрузить в программу именно его.
Форма загрузки медицинских показателей, видов удостоверений, страховых компаний, органов выдачи документов, пунктов пересечения границы
Эти формы загрузки данных открываются из соответствующих справочников «Медицинские показатели», «Виды удостоверений», «Страховые компании», «Органы выдачи документов», «Пункты пересечения границы» с помощью кнопки Команды — Загрузить [название объектов].
Встретилась задачка, нужно было загружать данные из mxl файлов выгруженных из другой базы 1С.
Файл MXL – это созданный в программе «1С: Предприятие» (последних версий 7.7 или 8) табличный документ.
вот код быстрой конвертации mxl в тз
Похожие FAQ
10060 (0x0000274C): Попытка установить соединение была безуспешной 19
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени Посмотреть все результаты поиска похожих
Еще в этой же категории
Как программно изменить текст, цвет, фон ячейки или области табличного документа? 7
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Загрузка данных из файла табличного документа в управляемом приложении 3
В управляемом приложении (если конечно вы не работаете в Толстом клиенте) можно столкнутся с такой проблемой, что многие функции работают только на сервере. Что делать, если у Вас есть файл-макет с данными, которые надо прочитать (обработать)? Надо Как при печати выводить шапку на каждой странице (ПовторятьПриПечатиСтроки)? 1
Необходимо при печати, если происходит переход на следующую страницу таблицы, выводить шапку таблицы вверху на новой странице. для печати шапки на каждой странице в языке программирования есть специальный метод - ПовторятьПриПечатиСтроки Прим Как сделать Расшифровку в табличном документе 0
Вопрос: Подскажите пожалуйста, каким образом можно сделать следующее. У меня есть выводимый в табличный документ результат запроса, к ячейке есть расшифровка. Я хочу чтобы при двойном клике на ячейку выполнялась процедура которая к примеру зап Шаблон кода для вывода данных в табличный документ 0
Часто при разработке необходимо вывести данные в печатную форму, ниже шаблон вывода в табличный документ Пример процедуры Вывода на печать Процедура Печать(ТабДок) Экспорт //создание нового табличного документа ТабДок = Новый ТабличныйДок Посмотреть все в категории Табличный документ
Встретилась задачка, нужно было загружать данные из mxl файлов выгруженных из другой базы 1С.
Файл MXL – это созданный в программе «1С: Предприятие» (последних версий 7.7 или 8) табличный документ.
вот код быстрой конвертации mxl в тз
Похожие FAQ
10060 (0x0000274C): Попытка установить соединение была безуспешной 19
Установили новый терминальный сервер, на нем подняли 1С, терминальные пользователе неописуемо довольны, все просто летает :) И вот же надо было такому случиться, главному бухгалтеру не понравилось работать через терминал, а еще у нее свой ноутбук и 1C: Enterprise Development Tools 50
И вот случилось долгожданное: Вышел 1C: Enterprise Development Tools - это среда для разработки конфигурации в IDE Eclipse. С сайта 1С: « 1C:Enterprise Development Tools » – это инструмент нового поколения для разработчиков бизнес-приложений систем Cодержимое указанного ниже веб-сайта в этом приложении блокируется. Aboutsecurity_1cv8c.exe 1
Проблема: После обновления на 1С:Бухгалтерию предприятия 3-й версии, при нажатии на закладку командного интерфейса 1С:предприятие, выскакивает ошибка: Aboutsecurity_1cv8c.exe или Aboutsecurity_1cv8.exe «Содержимое указанного ниже веб-узла в э Google maps : вывод точек на карту и режим панорамы 7
В отличие от яндекс карт в GMaps можно использовать панорамы - за что им большой плюс! Надеюсь в яндексе прочитают этот пост и тоже когда-нибудь это сделают! Для клиента нужно было сделать вывод объектов на карту С возможностью просмотра панора Microsoft SQL Server Native Client Добавление значения в столбец "datetime" привело к переполнению 2
При формировании отчета на СКД получили ошибку: Microsoft SQL Server Native Client 11.0: Добавление значения в столбец "datetime" привело к переполнению Подробнее текст такой: . по причине: Ошибка компоновки данных по причине: Ошибка получени Посмотреть все результаты поиска похожих
Еще в этой же категории
Как программно изменить текст, цвет, фон ячейки или области табличного документа? 7
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Загрузка данных из файла табличного документа в управляемом приложении 3
В управляемом приложении (если конечно вы не работаете в Толстом клиенте) можно столкнутся с такой проблемой, что многие функции работают только на сервере. Что делать, если у Вас есть файл-макет с данными, которые надо прочитать (обработать)? Надо Как при печати выводить шапку на каждой странице (ПовторятьПриПечатиСтроки)? 1
Необходимо при печати, если происходит переход на следующую страницу таблицы, выводить шапку таблицы вверху на новой странице. для печати шапки на каждой странице в языке программирования есть специальный метод - ПовторятьПриПечатиСтроки Прим Как сделать Расшифровку в табличном документе 0
Вопрос: Подскажите пожалуйста, каким образом можно сделать следующее. У меня есть выводимый в табличный документ результат запроса, к ячейке есть расшифровка. Я хочу чтобы при двойном клике на ячейку выполнялась процедура которая к примеру зап Шаблон кода для вывода данных в табличный документ 0
Часто при разработке необходимо вывести данные в печатную форму, ниже шаблон вывода в табличный документ Пример процедуры Вывода на печать Процедура Печать(ТабДок) Экспорт //создание нового табличного документа ТабДок = Новый ТабличныйДок Посмотреть все в категории Табличный документ
Встретилась задачка, нужно было загружать данные из mxl файлов выгруженных из другой базы 1С.
Файл MXL – это созданный в программе «1С: Предприятие» (последних версий 7.7 или 8) табличный документ.
вот код быстрой конвертации mxl в тз
Похожие FAQ
Еще в этой же категории
Вывод картинки (изображения) на печать, в макет (табличный документ) 32
// 1-й вариант //Как вывести картинку в табличный документ? ТабДок = Новый ТабличныйДокумент; Макет = ОбработкаОбъект.ПолучитьМакет(" Макет" ); ОбластьКартинки = Макет.ПолучитьОбласть(" ОбластьСКартинкой" ); Картинка = Новый Картинка(ПутьККа Вывести табличный документ в PDF 18
Данный пример работает на платформе выше 8.2.13 Макет = ПолучитьМакет(" Макет" ); ОбластьШапка = Макет.ПолучитьОбласть(" Шапка" ); ТабДок = Новый ТабличныйДокумент; ОбластьШапка.Параметры.НомерДок = Номер; ОбластьШапка.Параметры.ДатаДок = Как программно изменить текст, цвет, фон ячейки или области табличного документа? 7
Ниже приведено несколько полезных шаблонов кода по работе с табличным документом: //Пример получения текста ячейки ПолеТабДок = ЭлементыФормы.тдПолеТабличногоДокумента; ПолеТабДок.Область("R1C2").Текст = спрНоменклатура.Наименование; ПолеТабДок Как в отобразить картинку в табличной части 7
В табличной части есть документы заявки от покупателя, нам нужно добавить картинку для отображения статуса документов заявка - проведен , не проведен, помечен на удаление. //Отобразим картинку Процедура СписокПриВыводеСтроки(Элемент, Оформление Вывод колонтитулов программно ВерхнийКолонтитул, НижнийКолонтитул 6
Колонтитул является специальным текстом, выводимым вверху или внизу каждой страницы при выводе документа на печать. В тексте колонтитула можно использовать следующие управляющие конструкции: > ( >) - при печати в данном месте будет выведен номер ст Посмотреть все в категории Табличный документ
Читайте также: