1с параметры печати внешняя печатная форма

Внешние обработки, печатные формы, обработки по заполнению табличных частей

В данном материале описываются особенности реализации механизма подключения «Внешние обработки, печатные формы, обработки по заполнению табличных частей» (далее ВПФО). Также перечисляются требования, предъявляемые к внешним обработкам, для возможности их использования данным механизмом.

Общее описание

Механизм предназначен для подключения (без изменения конфигурации):

Внешние печатные формы и обработки создаются разработчиком с соблюдением определенных условий. Условия обязательны для выполнения на этапе создания внешней обработки, для ее корректной работы в качестве подключаемой к конфигурации.

Для реализации механизма ВПФО используется справочник «Внешние обработки».

Для справочника предусмотрены специализированные реквизиты*:

ПРИМЕЧАНИЕ
Полный перечень реквизитов будет описан ниже, в разделе Техническая реализация механизма «Внешние обработки, печатные формы, обработки по заполнению табличных частей»

Для удобства, формы списков ВПФО вызываются раздельно, с предустановленным отбором по реквизиту «Вид обработки», из подменю «Сервис».

Добавлять и изменять ВПФО в базе данных может пользователь, обладающий правом администрирования дополнительных форм и обработок. Это отдельная роль в конфигурации.

Для остальных пользователей назначаются права на чтение(использование) и запись(изменение) по каждому элементу справочника ВПФО.

Преимущества использования механизма ВПФО перед механизмом платформы открытия внешних обработок:

Описание видов справочника ВПФО и требования к подключаемым внешним обработкам

Рассмотрим каждый вид ВПФО по отдельности.

Произвольная обработка

Для включения произвольных обработок в базу данных, необходимо указывать только внешнюю обработку, которая находится на диске.

Открытие произвольных обработок в форме списка производится при выборе элемента ВПФО с видом «Произвольная обработка». При этом, производится сохранение двоичных данных из реквизита «Хранилище внешней обработки» на диск во временный файл. После этого, у сохраненной внешней обработки открывается основная форма.

Основная форма для произвольной обработки должна быть определена обязательно.

Обработка для заполнения ТЧ объектов

Для обработок заполнения ТЧ необходимо указывать внешнюю обработку (файл на диске, с расширением epf), список объектов и их ТЧ, для которых необходимо использовать данную обработку.

В типовых конфигурациях объектами, использующими данный механизм, являются все документы, содержащие хоть одну табличную часть.

Перед открытием формы объекта в командных панелях табличных полей (источником данных для которых является табличная часть объекта), которым соответствуют определенные строки в справочнике ВПФО, программно добавляются пункты в подменю «Заполнить» (если подменю «Заполнить» отсутствует на командной панели, оно создается).

При нажатии на созданную перед открытием кнопку подменю «Заполнить» происходит сохранение соответствующей обработки на диск во временный файл, для сохраненной внешней обработки вызывается процедура:

Инициализировать (Объект, ИмяТабличнойЧасти, ТабличноеПолеОбъекта)

Наличие экспортной процедуры «Инициализировать()» в модуле объекта обработки с видом «Заполнение табличных частей» обязательно. В теле данной процедуры должен располагаться программный код, заполняющий табличную часть в соответствии с назначением обработки.

Обработка так же может иметь в своем составе макет «Параметры_Авторегистрации», используемый для автоматического заполнения принадлежности печатной формы в справочнике «Внешние обработки». Макет должен состоять из 2-х колонок – «полное имя объекта» и «имя табличной части».

Пример макета Параметры_Авторегистрации:

Внешняя печатная форма

Для подключаемых внешних печатных форм указывается:

Для каждого типа объекта дополнительно можно указать:

Вызов диалога настройка условий отбора осуществляется при начале выбора значения в колонке «отбор»:

fieldchoice

В формах объектов, в командной панели формы (обычно это нижняя командная панель) формируется подменю кнопок печатных форм. Подменю формируется программно, при открытии формы и при записи объекта в форме (для обеспечения изменения пунктов меню в зависимости от данных объекта, и срабатыванию указанных в печатных формах условий отборов). В формируемом меню стандартные печатные формы отделяется от подключаемых разделителем.
Например:

Если находится подключаемая печатная форма, которой необходимо заменить стандартную, то она заменяется и показывается в списке стандартных печатных форм. В этом случае подключенная печатная форма отдельно в списке подключенных печатных форм не отображается.

При нажатии на любую из кнопок печати происходит определение, соответствует ли данная кнопка внешней печатной форме или встроенной в конфигурацию.
Для кнопок, соответствующих печатным формам встроенным в конфигурацию, вызывается встроенный механизм печати (данный механизм в рамках текущего проекта не рассматривается).
Для кнопок, соответствующих внешним печатным формам, происходит сохранение соответствующей обработки на диск во временный файл.

Для сохраненной внешней обработки:

Наличие реквизита «СсылкаНаОбъект» и экспортной функции «Печать()» в модуле объекта обработки с видом «Внешняя печатная форма» обязательно.

В теле функции «Печать()» должен располагаться программный код, который формирует и возвращает табличный документ, в соответствии со значением реквизита «СсылкаНаОбъект».

Обработка так же может иметь в своем составе макет «Параметры_Авторегистрации», используемый для автоматического заполнения принадлежности печатной формы в справочнике «Внешние обработки» состоящий из одной колонки – полное имя объекта для которого будет создаваться соответствующая кнопка печати.

Пример макета Параметры_Авторегистрации:

При соблюдении этих требований пользователю будет достаточно указать при регистрации дополнительной печатной формы файл внешней обработки, после чего все реквизиты формы заполнятся автоматически.

Техническая реализация механизма «Внешние обработки, печатные формы, обработки по заполнению табличных частей»

В базе данных внешние обработки, печатные формы, обработки по заполнению табличных частей хранятся в справочнике «Внешние обработки». Справочник имеет следующую структуру:

structure

ТабличнаяЧасть.Принадлежность. Хранит типы объектов, для которых задается ВПФО и прочие описанные ниже параметры. Табличная часть используется для элементов с видом обработки: «Печатная форма» или «Заполнение табличных частей».

Реквизиты табличной части:

** Используется только для элементов с видом обработки: «Заполнение табличных частей»
*** Используется только для элементов с видом обработки: «печатная форма».

Подключение дополнительных печатных форм к формам объектов конфигурации

Механизм дополнительных печатных форм является расширением стандартного механизма печатных форм объекта. Добавление дополнительной формы в общий список форм выполняется в процедурах модуля формы объекта перед открытием, после записи и при нажатии на кнопку «Установить печать по умолчанию».
Подменю «Печать» и кнопка «Печать по умолчанию» в форме объекта не должны присутствовать в обязательном порядке. Они формируются программно, в том случае, если есть хоть одна печатная форма и задана печать по умолчанию.

Подключение обработок по заполнению табличных частей к формам объектов конфигурации

Для обеспечения подключения механизма в форме объекта должны присутствовать следующие процедуры и функции:

Источник

Создание внешней печатной формы под УП с возможностью передачи параметров (для конфигураций на БСП)

Статья отображает частное мнение автора по данному вопросу и не претендует на истину в последней инстанции. Поэтому если кто-то может предложить иные способы решения данной проблемы, можете писать их в комментах)

Видеоверсию данной статьи можете посмотреть тут: http://youtu.be/9JlR-2rNW6o

Поставим задачу: вывести счет на оплату покупателя внешний с дополнительным комментарием.

Первый метод.Вывод табличного документа.

Данный метод можно назвать довольно топорным, но зато быстрым и не требующим каких-то особых дополнительных движений. Мы просто получаем табличный документ счета, и выводим его на экран.

Для описания этого метода возьмем обработку СчетНаОплатуПокупателюВнешний.e pf из предыдущей моей статьи. Добавим реквизит обработки: Комментарий, тип строка(100).

1 1

Добавим форму обработки, на которой разместим данный реквизит, разместим кнопку «Печать» и создадим команду формы «Печать»

1 2

Также у формы создадим параметр «ОбъектыНазначения» тип«Произвольный» (сделайте его ключевым)

Поясню, при открытии формы, в этот параметр будут записаны все объекты, для которых открывается данная печатная форма.

1 3

&НаСервере
Функция ПечатьСерверная ()

КонецФункции
&НаКлиенте
Процедура Печать ( Команда )

Получим объект обработки.

ЭтотОбъектОбработка = РеквизитФормыВЗначение («Объект»);

Теперь перейдем в модуль обработки. И внесем кое какие изменения в уже написанный код.

Теперь перейдем в процедуру Печать, сделаем функцией, и оставим только первый параметр МассивОбъектов

Смотрим на тело функции, тот код который там написан в нашем случае не применим. Поэтому мы вычистим ее, оставив только код, с помощью которого можно получить табличный документ это функция ПолучитьТаблицуСведенийСчетаНаОплатуи функция ПечатьСчетаНаОплату, функция ПечатьСчетаНаОплату возвращает табличный документ.

1 4

Должен получиться следующий код:

Функция Печать ( МассивОбъектов ) Экспорт

ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату ( МассивОбъектов );

Поскольку параметр объекты печати является списком значений,содержащим распечатываемые документ(справочники), то создадим данный список, и заполним его объектами из массива и возвратим табличный документ.

Функция Печать ( МассивОбъектов ) Экспорт

ТаблицаСведенийСчетНаОплату = ПолучитьТаблицуСведенийСчетаНаОплату ( МассивОбъектов );

Теперь изменим макет, добавив комментарий в подвал счета.

1 5

Осталось в функции ПечатьСчетаНаОплату у соответствующей области макета соответствующему параметру присвоить реквизит обработки Комментарий .

1 6

Обращаю ваше внимание, у других конфигураций и других объектов могу быть иные процедуры формирования табличного документа, чем те которые приведены в примере, в данной статья показан общий механизм.

Заканчиваем работу с модулем обработки и переходим в модуль формы. В функцию ПечатьСерверная()

Вызовем функцию ПечатьСерверная на клиенте, и покажем сформированный табличный документ.

Сохраняем печатную форму и добавляем в дополнительные отчеты и обработки конфигурации.

1 7

Перейдем в документ, выберем данную печатную форму.

1 8

Выйдет форма, в которой мы заполним поле комментарий.

1 9

Нажимаем печать и выходит табличный документ.

1 10

Возможно многих и устроит подобный вариант выхода печатной формы. Кто же хочет, что бы выходила типовая форма.

То изучайте вторую и третью часть этой статьи.

Второй метод. Использованиедополнительных сведений документа.

Для этого заходим в список счетов на оплату покупателю инажимаем кнопку дополнительные сведения

2 1

Откроется форма Дополнительных сведений, пока она пустая,т.к. нет ни каких сведений привязанных к данному документу.

Что бы создать их заходим в Все действия – Изменить составдополнительных сведений.

2 2

2 3

Пишем наименование КомментарийДополнительный, тип значениявыбираем строка. И записываем новое дополнительное сведение.

2 4

Все оно создано, и появится в списке дополнительных сведений документа Счет наоплату покупателю. Запишем в него какой-нибудь комментарий, и сохраним.

2 5

Теперь нам осталось узнать под каким именем данноедополнительное сведение сохранилось в плане видов характеристик « Дополнительные реквизиты и сведения ».

Зайдем в него через меню «Все функции».

2 6

Все. Все необходимые приготовления мы сделали, теперьперейдем к написанию обработки, которая будет подставлять в комментарийзначение данного дополнительного сведенья.

Как и в предыдущей части, за основу мы будем брать обработкуиз моей предыдущей статьи.

Исправим в процедуре сведения СведенияОВнешнейОбработке() наименование параметра регистрации и представление команды, что бы можно былоотличить нашу новую обработку.

Функция СведенияОВнешнейОбработке () экспорт

Теперь создадим функцию, которая получает по ссылке надокумент, и по ссылке на доп сведение значения. Кто не знает, поясню, чтозначения доп сведений в БСП хранятся в регистре сведений «ДополнительныеСведения»

2 7

Где в измерении Объект хранится ссылка на документ, визмерении Свойство – ссылка на план видов характеристик Дополнительные сведенияи реквизиты, а в ресурсе Значение – значение данного сведения для данногодокумента.

Посмотрите на состав регистра в нашем случае.

2 8

Поэтому создадим функцию в которую будем передавать массивдокументов и массив дополнительных сведений, а возвращать она будетсоответствующую выгрузку запроса.

МассивДопСведений = Новый Массив ;

Теперь добавим в макет новый параметр «Комментарий»

2 9

Первым делом нам необходимо извлечь из таблицы значений ТаблицаДопСвойств значение для распечатываемого документа и нужного дополнительного свойства. Дляэтого получим ссылку на доп. свойства используя наименование, которое мы ужезнаем.

//Получимзначение доп свойства для данного документа

После этого создаем структуру с полями Документ иДопСведение, в которую вставим ссылку на наш документ и ссылку на найденноедополнительное сведение.

Ищем в таблице значений ТаблицаДопСвойств строки по данномуотбору.

Проверим, есть ли в полученном массиве записи, и если естьто возьмем первый элемент массива, который будет являться строкой таблицы значений, и получим содержимоеколонки «Значение». Запишем этосодержимое в параметр.

ЗначениеДопСведения = МассивЗначения [0]. Значение ;

Осталось сохранить обработку, добавить ее в дополнительныепечатные формы и посмотреть как выйдет наш счет.

2 10

2 11

Данным способом можно решить большинство задач где необходимо ввести дополнительные параметры во внешнюю печатную форму. Но если он вас чем-то не устраивает, остается третий способ интерактивным вызовом формы ПечатьДокументов и передачей в нее параметров. Он приведен в комментариях к моей предыдущей статье.

Источник

Внешние печатные формы в 1С

service img1

Обновим 1С с гарантией сохранности базы

service img2

Поможем с 1С 24/7, без выходных

service img3

Установим сервисы 1С бесплатно

service img4

Оперативно решим любые задачи по 1С

В случае, если необходимо добавить какую-либо печатную форму в систему, то отличным вариантом это сделать является создание дополнительной печатной формы. При использовании дополнительной печатной формы нет никакой необходимости вносить изменения в конфигурацию.

Часто пользователям необходимо внести небольшие изменения в печатную форму, уже существующую. В этом случае также лучше использовать дополнительную форму, а не вносить поправки в стандартную, т.к. при последующих обновлениях системы могут возникнуть серьёзные проблемы.

Для примера возьмём печатную форму «Унифицированная форма №Т-61» или по-другому «Записка-расчет при прекращении (расторжении) трудового договора с работником (увольнении)». Будем использовать конфигурацию 1С Управление производственным предприятием.

Пользователи попросили добавить в документ «Увольнение из организаций» данную печатную форму. Рассмотрим процесс создания печатной формы, заполнение её макета и подключения печатной формы.

Создание и настройка печатной формы в 1С

Для создания новой обработки в 1С необходимо запустить 1С в режиме «Конфигуратор».

placeholder

В Конфигураторе в меню «Файл» необходимо выбрать пункт «Новый», так же можно воспользоваться комбинацией клавиш Ctrl+N или кнопкой на панели быстрого доступа.

placeholder

По сути внешняя печатная форма – это внешняя обработка, предназначенная для формирования печатной формы, поэтому в появившемся окне выбираем вариант «Внешняя обработка» и нажимаем «ОК».

placeholder

В открывшемся окне новой обработки необходимо задать ей имя. Назовём нашу обработку «УвольнениеТ61», автоматически формируется синоним, который будет виден пользователям.

placeholder

Добавим реквизит «СсылкаНаОбъект» и укажем тип «ДокументСсылка.УвольнениеИзОрганизаций» т.к. мы собираемся подключать обработку именно к данному документу.

placeholder

Теперь необходимо создать форму для нашей обработки. Выбираем в списке «Формы» и нажимаем «Добавить».

placeholder

В появившемся окне формы выбираем параметры для формы нашей обработки. Тип формы установим «Форма обработки», проконтролируем флаг «Назначить форму основной». Можно задать форме имя, но мы оставим стандартное. В данном примере оно не играет никакой роли. Нажимаем «Далее».

placeholder

На данной вкладке установим флаг у реквизита «СсылкаНаОбъект» для того, чтобы он появился на форме, затем нажимаем «Готово».

placeholder

Нажимаем правой кнопкой мыши на кнопку «Выполнить» и выбираем пункт «КнопкаВыполнитьНажатие».

placeholder

В процедуру выполнить нажатие добавим следующий код:

placeholder

Так же нам понадобятся две переменные «ВалютаРегламентированногоУчета» и «ВалютаУправленческогоУчёта».

placeholder

В модуле формы больше никакого кода писать не нужно. Следующим шагом создадим макет печатной формы. Выберем «Макет» и нажмём кнопку «Добавить»

placeholder

В появившемся окне необходимо установить имя макета. Назовём макет «Т_61» и установим тип макета «Табличный документ».

placeholder

Перед нами откроется окно пустого табличного документа, которое необходимо заполнить в соответствии с внешним видом «Унифицированной формы №Т-61». Опустим шаги по заполнению макета, покажем только конечный результат.

placeholder

placeholder

Заполнение макета печатной формы

Код для заполнения макета необходимо расположить в «Модуле объекта». Для этого нажмём на кнопку «Действия» нашей обработки и выберем пункт «Открыть модуль объекта».

placeholder

Процесс написания кода аналогичен процессу заполнения обычного табличного документа, поэтому приведём готовый листинг кода, разобраться в котором начинающим программистам не составит никакого труда.

Запрос = Новый Запрос;

// Установим параметры запроса

Если Режим = «ПоРеквизитамДокумента» Тогда

Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;

| УвольнениеИзОрганизаций.Номер КАК НомерДок,

| УвольнениеИзОрганизаций.Дата КАК ДатаДок,

| УвольнениеИзОрганизаций.Организация.НаименованиеПолное КАК НазваниеОрганизации,

| УвольнениеИзОрганизаций.Организация.КодПоОКПО КАК КодПоОКПО,

| ОтветственныеЛицаОрганизаций.Должность КАК ДолжностьРуководителя,

| ОтветственныеЛицаОрганизаций.НаименованиеОтветственногоЛица КАК ФИОРуководителя,

| Документ.УвольнениеИзОрганизаций КАК УвольнениеИзОрганизаций

| ЛЕВОЕ СОЕДИНЕНИЕ ВТДанныеОбОтветственномЛице КАК ОтветственныеЛицаОрганизаций

| ПО УвольнениеИзОрганизаций.Организация = ОтветственныеЛицаОрганизаций.СтруктурнаяЕдиница

ИначеЕсли Режим = «ПоТабличнойЧастиДокумента» Тогда

| ЕСТЬNULL(ФИОФизЛицСрезПоследних.Фамилия + «» «» + ФИОФизЛицСрезПоследних.Имя + «» «» + ФИОФизЛицСрезПоследних.Отчество, УвольнениеИзОрганизацииРаботники.Сотрудник.Наименование) КАК Работник,

| УвольнениеИзОрганизацииРаботники.Сотрудник.ДатаДоговора КАК ТрудовойДоговорДата,

| УвольнениеИзОрганизацииРаботники.Сотрудник.НомерДоговора КАК ТрудовойДоговорНомер,

| УвольнениеИзОрганизацииРаботники.НомерСтроки КАК НомерСтроки,

| УвольнениеИзОрганизацииРаботники.СтатьяТКРФ.Наименование КАК СтатьяТКРФ,

| УвольнениеИзОрганизацииРаботники.ОснованиеУвольнения КАК ОснованиеУвольнения,

| КОГДА Работники.ПериодЗавершения ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

| КОНЕЦ КАК Подразделение,

| КОГДА Работники.ПериодЗавершения ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

| КОНЕЦ КАК ОЦРВ_Подразделение,

| КОГДА Работники.ПериодЗавершения ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)

| КОНЕЦ КАК Должность,

| УвольнениеИзОрганизацииРаботники.Сотрудник.Код КАК ТабельныйНомер,

| УвольнениеИзОрганизацииРаботники.ДнейЧасовКомпенсацииУдержанияОтпуска КАК Компенс,

| Документ.УвольнениеИзОрганизаций.РаботникиОрганизации КАК УвольнениеИзОрганизацииРаботники

| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ

| СписокДат.Сотрудник КАК Сотрудник,

| РаботникиОрганизации.ПодразделениеОрганизации.Наименование КАК ПодразделениеОрганизации,

| РаботникиОрганизации.Должность.Наименование КАК Должность,

| РаботникиОрганизации.ПодразделениеОрганизацииЗавершения.Наименование КАК ПодразделениеОрганизацииЗавершения,

| РаботникиОрганизации.ОЦРВ_ПодразделениеОрганизации.Наименование КАК ОЦРВ_ПодразделениеОрганизации,

| РаботникиОрганизации.ОЦРВ_ПодразделениеОрганизацииЗавершения.Наименование КАК ОЦРВ_ПодразделениеОрганизацииЗавершения,

| РаботникиОрганизации.ДолжностьЗавершения.Наименование КАК ДолжностьЗавершения,

| РаботникиОрганизации.ПериодЗавершения КАК ПериодЗавершения

| РаботникиВнутри.Сотрудник КАК Сотрудник,

| МАКСИМУМ(РаботникиВнутри.Период) КАК ДатаПоследнегоИзменения

| РегистрСведений.РаботникиОрганизаций КАК РаботникиВнутри

| ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.УвольнениеИзОрганизаций.РаботникиОрганизации КАК Док

| ПО РаботникиВнутри.Период 0 Тогда

ПредставлениеДатыДоговора = Формат(ВыборкаРаботники.ТрудовойДоговорДата, «ДЛФ=DD»);

ПредставлениеДатыУвольнения = Формат(ВыборкаРаботники.ДатаУвольнения, «ДЛФ=DD»);

Если ВыборкаРаботники.ПризнакКомпенсацииОтпуска = Истина Тогда

Функция Печать(КоличествоЭкземпляров = 1, НаПринтер = Ложь) Экспорт

// ОПЕРАТОРЫ ОСНОВНОЙ ПРОГРАММЫ

мДлинаСуток = 86400; // в секундах

мСведенияОВидахРасчета = Новый Соответствие;

Сохраняем нашу готовую печатную форму на диск и запускаем 1С в режиме «Предприятие».

Подключение внешней печатной формы к документу

Подключение внешней печатной формы производится аналогично подключению внешней обработки.

В меню «Операции» выберем пункт «Справочник».

placeholder

В открывшемся окне выберем справочник «Внешние обработки».

placeholder

В данном справочнике хранятся все внешние обработки, внешние отчеты и внешние печатные формы, добавленные в систему. Нажмём кнопку добавить на панели справочника.

placeholder

В появившемся окне нового элемента справочника необходимо указать вид элемента. Выбираем значение «Печатная форма».

placeholder

Выбираем файл нашей печатной формы

placeholder

Имя печатной формы в 1С заполнилось автоматически. Теперь необходимо указать «Принадлежность печатной формы». Нажимаем кнопку «Добавить».

placeholder

Выбираем документ «Увольнение из организаций» и нажимаем «ОК».

placeholder

Сохраняем нашу внешнюю печатную форму и открываем документ «Увольнение из организаций». В кнопке «Печать» добавился новый пункт с нашей печатной формой «Форма Т-61 (внешняя печатная форма)».

placeholder

Как оптимизировать работу с программой?

Кроме установки и настройки программы, существует также необходимость обновления 1С, подключение программы к периферическим устройствам и много других задач, отнимающих время ваших сотрудников и замедляющих рабочие процессы.

Даже если у вас есть программисты 1С, мы предлагаем оставить за ними важные стратегические задачи, а за сопровождением 1С к профессионалам, в компанию «ПРОГРАММЫ 93».

Почему нас выбирают?

ООО «ПРОГРАММЫ 93» — это компания с большим штатом сотрудников, в который входят не только специалисты 1С, но и бухгалтера, кадровики, юристы и другие эксперты. Вы больше не зависите от одного сотрудника, вам не нужно тратить деньги на приглашенных специалистов для решения каждой задачи и переживать насчет того, что у вас не хватает компетенции для проверки работы сотрудника. Для вас работает целая команда, любая задача дополнительно проверяется, а заболевший специалист тут же заменяется другим незаметно для вас.

Мы рады предложить вам:

Позвоните по номеру телефона, указанному на сайте, или заполните форму обратной связи, чтобы мы могли ответить на все возникающие вопросы и рассказать о том, как начать сотрудничество!

Источник

Понравилась статья? Поделить с друзьями:
Добавить комментарий
  • Как сделать успешный бизнес на ритуальных услугах
  • Выездной кейтеринг в России
  • Риски бизнеса: без чего не обойтись на пути к успеху
  • 1с параметры авторегистрации печатных форм
  • 1с параметр запуска управляемое приложение