Все про печатные формы 1С за 2 часа
#1с #печатныеформы1с #ironskills
⚡Все про печатные формы 1с за 2 часа⚡
В этом мастер-классе решаем задачи, связанные с печатной формой 1С.
Рассматриваемые темы:
- что такое печатная форма 1С
- как реализовать печать документа в 1C
- макет печатной формы 1С
- печать с использованием макета типа "Табличный документ"
- печать с использованием макета типа "Текстовый документ"
- печать с использованием макета типа "Active document" (печать в Word из 1С)
В мастер-классе решим 3 практические задачи из реальной практики по созданию печатных форм в 1С (табличный документ, текстовый документ, Word).
Оставляйте вопросы и комментарии под этим видео. Также пишите на какие темы по 1С был бы интересен следующий мастер-класс. Будем очень благодарны за любую обратную связь :)
Подписывайтесь на наш канал и ставьте "колокольчик", чтобы быть в курсе выхода новых видео.
#печатныеформы1с#уроки1с#ironskills
🔴Записаться на курс "Профессия программист 1С: с нуля до профи": ironskills.by/programmist-1c
Поддержать канал донатом можно по ссылке:
donate.stream/ya410011655962993
✅Задавайте свои вопросы в комментария
Спасибо вам, что вы с нами :)
4 года назад нужно было по крупинкам собирать инфу, чтобы сделать что-то без навыков программирования. Сейчас надо только окунуться в ютуб) Спасибо Вам за этот вклад! Вы ускоряете прогресс малого и бедного бизнеса в разы)
8 лет назад можно было умереть возле такой таски
Все чётко, такой поднос информации наблюдаю впервые. Благодарю
Спасибо, что подробно так все объясняете, только с Вами начала реально понимать как все взаимодействует.
Очень хорошо изложен материал , презентация отличная ,все ясно - понятно :)
Спасибо за Ваш кропотливый труд. Очень много интересного и нового.
Сделайте обучающее видео, как обращаться к различным реквизитам из: модуля менеджера, модуля объекта, модуля объекта формы! Желательно сложные обращения. Я думаю, это будет интересно многим.
И в целом ЛикБез по этим модулям. Различия и т.п.
Через точку обращения все. Что тут показывать то
@@user-abc-abc модуль объекта отвечает за обработку конкретного 1 объекта выбранного, модуль менеджера за все объекты сразу, модуль формы нужен для работы с формой. Со временем поймёте почему так разделено
Спасибо за Ваш труд. Очень полезная информация
Благодарен Ивану бесконечно, материал - золото, процветания вашей школе, уверен что там предоставляют очень качественные курсы
Супер урок. Спасибо огромное!!!
Спасибо! Информативно.
Круто, что заморочился и сделал презенташку
Спасибо за очень полезное видео.
Спасибо за отличное видео!
Иван, изложение информации как всегда на высоте! Хотелось бы еще чтобы изложили так принципы работы с остальными типами макетов.
instablaster...
Огромное спасибо!
Спасибо, крутой урок
Спасибо за лекцию. А сами презентации где-то можно скачать?
Отдельное спасибо за "Автовысота строки"!!
Спасибо. Вы лектор от бога. Лучшая подача из всего, что я видел в 1С.
Инфа по содержанию подана хорошо, но как лектор - это трэш.
Отлично, супер!
Огромное спасибо за информацию, до этого думала что делать печатные формы это очень сложно , теперь же этот страх развеян благодаря Вам
Это самое лёгкое что может быть у разработчика 1С в работе)))
Спасибо!
Спасибо, супер !!!
23:00 ДокументМенеджер и его метод "ПолучитьМакет" 26:06 Пример кода по формированию печатной формы 49:40 Запрос 56:28 Обход табличной части из запроса 58:20 Сумма всего в подвал посчитать в цикле (не хорошо это) 1:02:10 Высота строк в Таб. доке 1:06:13 Прием быстро создать заготовку для ПФ или Отчета 1:16:16 Макет "Текстовый док"(для печати чеков) 1:33:00 Active Document
Здравствуйте. А как обратиться к реквизиту формы или справочнику. Допустим у меня есть в макете параметр , заполняется он из выборки ДанныеДиректора = Новый Структура("СсылкаНаОбъект, Период, Фамилия, Имя, Отчество, Должность", ВыборкаДокументы.ДиректорСсылка, ВыборкаДокументы.ТекстДата); Справочники.Контрагенты.ПолучитьДанныеКонтрагента(ДанныеДиректора, Истина); СтруктураПараметров.Вставить("Директор", КорреспондентыКлиентСервер.ФИО(ДанныеДиректора, Истина)); Но мне нужно добавить еще и должность к этому параметру, но директор может быть не только ответственное лицо, а например зам или еще кто-то, мы его выбираем сами на форме, но на форме есть только ФИО этого лица, а должности вообще там нет. Как запросить эти сведения из справочника, при этом сопоставляя с данными из реквизита формы?
Здравствуйте. Что-то нет ни у кого в обучающих видео по печатным формам как добавить меню команд настроек печатных форм. Как их показать на экране?
Это золото!
Иван, а подскажите пожалуйста, как передавать параметр, открытого документа в процедуру печати, но не в управляемых формах? Тренируюсь на старой конфе с обычными формами, что то не получается.
Класс!
Здравствуйте , а можно ссылку на презентацию? Буду благодарна)
Добрый день! Урок супер! Жаль, что в описании нет ссылки на макет excel и на cf'ник.
Подскажите, где взять такую же конфигурацию
Кстати, по поводу Actine Document. Здорово было бы, если показали плюсы и минусы его использования по сравнению с типом макета "Двоичные Данные". Почему везде не использовать двоичные данные вместо Actine Document?
Большое спасибо за видео! Очень четкая подача информации. ВОПРОС - а можно ли где то скачать презентацию к видео и базу с кодами как в прошлом видео ?
Спасибо за комментарий, Кристина) Презентация и база, к сожалению, не сохранились, точнее где-то мы потеряли эти файлы...
Подскажи пожалуйста, как отобразить данные в макете табличный документ поверх картинки (отсканированного бланка)? Пробовал переместить ее на задний план, но данных не видно, картинка закрывает собой. Как это правильно сделать?
Для наложения текста на картинку в табличном документе можно добавить рисунок типа "Текст": disk.yandex.com/i/TNbYQZloi8OYBA
Просветите меня, пожалуйста, как к ВПФ привязать дополнительный реквизит, в интернете не могу найти ничего внятного:(
Спасибо за ваши видео! Подскажите, как реализовывается механизм сортировок строк в печатной форме документа по наименованию, длине наименования и цене
В печатной форме вы это никак не сделаете. Сортировку надо делать до вывода в печатную форму. Ну а это в принципе стандартные алгоритмы сортировки, либо прямо в запросе сортировать. Тут как удобнее.
Здравствуйте, за Вами повторяла урок и выходит в конце такая ошибка, объясните пожалуйста причину и как ее исправить? Ошибка при вызове метода контекста (Rows) {Документ.РасходТовара.Команда.ПечатьДоговорWord.МодульКоманды(157)}:Row = Таблица.Rows.Add(Таблица.Rows(НомерСтроки = 1)); {Документ.РасходТовара.Команда.ПечатьДоговорWord.МодульКоманды(5)}:ПечатьНаСервере(ПараметрКоманды); по причине: Произошла исключительная ситуация (Microsoft Word): Запрашиваемый номер семейства не существует.
Спасибо, все супер как обычно, но возник вопрос, можно ли сделать ActiveDocument через внешнюю обработку ?
К COM объектам можно обращаться откуда угодно, это технология винды и никак не связана с 1С. 1С просто поддерживает этот тип взаимодействия приложений. По сути это просто запуск стороннего приложения с возможностью обращаться к его объектной модели из стороннего кода. Что это за код, такому приложению плевать, а уж тем более плевать, внешняя это обработка или стандартная и обработка ли это вообще. COMобъект - это объект встроенного языка. Его в принципе можно создать везде, где можно писать код.
Как создать внешнюю печатную форму ворда, сделал её внешней, но при использовании требует создать табличный документ, также вывести таблицу не смог, выходит ошибка
Добрый день. Спасибо за ваш труд по созданию видеоуроков. У меня есть вопрос по по данным, которые добавляются в табличный документ: как получилась сумма 240 за 6 шт. товара с ценой 200?
Спасибо за комментарий, Надежда) Возможно, есть ошибка где-то в документе, т.к. печатная форма формируется на основании данных в документе.
здорово
Если кому поможет про удаление лишней строки то алгоритм следующий: If ВыборкаДетальнойЗаписи.Количество()
Я знал что найду решение в комментариях. Знал)
А где можно скачать данную форму?
ОЧень круто. Но не понятно, зачем мы делаем команду у документа и в ТипПараметраКоманды указываем этот же документ. Почему ТИп ПАрметра не заполнился автоматом? Как в один документ можно передать другой, это как??? И ВТорой вопрос - а нельзя ли было у модуля команды сделать ее экспортной и общаться к ней из вне?
Зачем усложнять с большим количеством областей? Есть области, которые добавляются в документ один раз (от начала документа до заголовков столбцов таблицы включительно, и все, что ниже таблицы) и периодическая область (собственно строки таблицы), т.е. область, которая добавляется несколько раз, в зависимости от количества строк таблицы документа. Фактически получается 3 области, а не 5. Так же проще.
спасибо за понятные видео. Подскажите как вывести два макета в один табличный документ? в внешнею обработку я добавил 2 макета, но они у меня сейчас выводятся как отдельные таблицы. Буду очень благодарен за помощь.
Валерий, если нужно в один табличный документ вывести области из 2-х макетов тут ничего принципиально отличаться не будет, общая последовательность действий: 0. Создать новый табличный документ (для вывода) 1. Получить макет № 1 2. Обеспечить вывод областей из Макета № 1 в табличный документ 3. Получить макет № 2 4. Обеспечить вывод областей из Макета № 2 в табличный документ 5. Показать табличный документ
@@ironskills-1c Все так и сделал, из двух табличных частей (макет - расходная и ТТН) вывел в один табличный документ с разделителем страниц. Но столкнулся с проблемой форматов. Расходная Книжная, а ТТН альбомная. И в финальный документ получается каша. Присваивал форматы портрет / ланшафт и не помогает. Какие есть варианты? Надо сделать оба макета в одинаковой ориентации?
@@HilyutaValera да, для одного табличного документа может быть установлен только один вариант ориентации... Как вариант выхода - создавать 2 разных табличных документа - один ориентации Портрет, другой - ориентации Ландшафт. Возможно есть какие-то способы извратиться) Но на практике не приходилось с таким иметь дело...
Привет, а не будет случайно стрима по внешним печатным формам?)
будет) по датам, правда, пока точно не можем сказать когда)
@@ironskills-1c спасибо за ответ:)
Привет, нужна помощь, есть база в 1с 8.3 УТП 1.2. Ситуация такая, есть склад и несколько магазинов, соответственно есть несколько типов цен, закупка, опт, розница. При перемещении товаров со склада на магазины в накладной есть розничные цены, но появилась необходимость добавить в этот док ещё и закупочную цену в отдельную колонку. Как такое реализовать, сложно ли, подскажите хоть в каком направлении копать и реально ли вообще?
Да, это реально, конечно) Если конфигурация на поддержке, то если позволяет версия платформы (8.3.5 и выше), можно попробовать решить задачу, используя механизм расширений. Вам нужно в табличную часть документа добавить новый реквизит и обеспечить его заполнение данными из регистра сведений "ЦеныНоменклатуры".
Спасибо за урок! А как сформированный на экране ТабДок на принтер отправить?
У объекта типа "ТабличныйДокумент" есть метод Напечатать(). Пример вызова: ТабДок.Напечатать();
Спасибо большое! У меня возникла проблема по печатным формам через active document : дело в том что на моем комп-е все работает отлично, но если ставить на серверный вариант, то не работает. Уже все попробовал, но ничего не получается. Ошибка "Ошибка при вызове метода контекста (Получить); ФормаДокумента.Форма(133)}:Word = Макет.Получить(); "
52:00 не понимаю зачем такие сложности с массивами и т.д.? Других несколько видео смотрел там как-то попроще...
Очень хорошие уроки. Вопрос: Вы не хотите создать серию видеоуроков по разработке элементарной конфигурации учета оргтехники в организации: приход, сборка, разборка, списание, перемещение? Думаю, многим это интересно будет.
так у автора есть курс с азов программирования до.... все это есть уже, но платно, вроде за разумные деньги.
@@adamasts не нашел
А без приложения word можно сохранить договор из такого макета в вордовский файл? Т.е., если на компе у пользователя не установлен ворд.
Нет, без установленного приложения Word сформировать договор в таком формате не получится
Это восхитительно 😿🤧
где взять базу, по которой Вы производите обучение?
Базу, к сожалению, не можем предоставить.
Подскажи пожалуйста, такая беда, торговля стоит, две организации в ней ИП и ООО и макет печати счёта в ИП должны быть прописаны дополнительные пункты, но в макете ООО их не должно быть. У меня получается , что все ссылается к одному макету и я вот третий час сижу и не понимаю, единственное , что приходит в голову , это создать макет для ИП и сделать кнопку с командой , печатью счёта для ИП . Если более простой способ ????
Добрый вечер!) Можно обойтись без создания отдельного макета. Как вариант: сделайте в макете 2 разные области - одна с пунктами для ИП, другая с пунктами для ООО. Затем в коде проверяйте организацию: для ИП получайте 1-ю область макета, для ООО - вторую, затем выводите в результат нужную область.
@@ironskills-1c Спасибо, а можете подсказать видео или статью в которой описан мой пример, а то сам я понимаю, как это работает, но как прописать не знаю.
@@rottenrose2475 Напишите нам в telegram - @ironskills_bot
Здраствуйте спасибо за полезний видео а у меня один вопрос Как из запроса табличной части вытащить юридическую часть и номер телефона И как вывести результат на печать из табличной части ? Я выполнял по вашему видео, но у меня в табличной части есть адрес и телефон. Я не могу их вывести на запрос. Помогите пожалуйста
Если конфигурация типовая, то для получения контактной информации можно использовать функции общего модуля УправлениеКонтактнойИнформацией: disk.yandex.com/i/M671np9fgmchxw
А как присвоить имя названию файла? Хочу сделать, Статичное имя файла «Догвор №» + данные реквизита «номер дор.договора» из справочника «договора»
Дмитрий, для табличного документа есть свойство "ИспользуемоеИмяФайла", с помощью которого можно управлять именем конечного файла. yadi.sk/i/aWI3gjZvhcOasg
@@ironskills-1c спасибо большое!!! Пополняю знания по 1С только после ваших курсов :)
а расскажи про создание печатных форм на основе отчетов (Личная карточка Т-2, например)
Вадим, механика построения печатной формы аналогичная: нужно создать макет, разметить в нем области и затем описать алгоритм, согласно которому в итоговый табличный документ в определенной последовательности будут выводится области из макета с заполненными параметрами. Если пришлете выгрузку базы и макет печатной формы в excel - постараемся сделать разбор этой задачи на канале ;)
Глупый вопрос но..а подскажите куда отсылать?
Скажите, вы выложили куда-нибудь выгрузки баз к вашим миникурсам?
Файлы выкладываем обычно под роликами, но не под всеми, к сожалению, это сделано пока...
Все круто! Но почему так мелко? У вас монитор 27 дюймов? С мобилы уже не посмотришь. На моем монике в 22 дюйма тоже тяжеловато идет.
Илья, нет, монитор 22 дюйма, как у тебя) Видео в максимальном расширении делаем. Но по поводу размера шрифтов - это в новых видео уже поправили)
@@ironskills-1c у меня с телефона хорошо видно, качество 720 ставлю и все четко.
Дайте ему кто-нибудь Оскар:)
Подскажите, пожалуйста, может кто сталкивался? Пытаюсь заполнить шаблон active documents в Excel 1с. аналогично Word по видео. Сам Excel выводится, но данными шаблона не заполняется. В чем может быть причина?
Сходу сказать трудно, нужно анализировать код в отладчике...
Консультацию можно получить у вас?
Да, конечно, пишите в telegram: t.me/igordynets
Может вопрос из разряда "от тупого", но не могу понять на 50-53 минуте пишем запрос по вытягиванию данных из БД по ссылке, зачем так усложнять если в ссылке и так есть все данные, в том числе и тч которую перебрать можно, зачем все усложнять запросами?
Я дума, что обращаясь к полям через разименовывание ссылки, мы читаем все данные. А запросом мы один раз их все прочитаем и потом с ними работаем. Это сделано для производительности. Можете почитать книгу Хрусталевой "Язык запросов", там об этом хорош описано.
Видео по разработке Множественной печати будет ?
Уточните, пожалуйста, что имеете ввиду под множественной печатью? Печать нескольких документов сразу?)
Да печать нескольких документов сразу. Разобрался как сделать. Установливаю параметр в запрос и выборка в цикле . Цикл на массив передаваемых ссылок. Сделал по примеру типовой печатной формы.
@@Integrations1Cv8 Отлично!)
А в вашем курсе все те же видео в платном который на пол года?
нет) в курсе сильно больше и есть последовательность, а также задания)
Будет внешние печатные формы и как их добавлять в 1с в нужные места?
Да, будет)
@@ironskills-1c ждёмс)
Не раскрыты особенности печатных форм без вскрытия конфы (внешних ПФ)
Почему-то у нас на курсе в нетологии просили использовать всегда текстовый документ. Хотя, очевидно, табличный документ более функционален...
Кто-то знает, как сохранить Ивана в архив? Нереальный человек в качестве преподавателя и способа изложения материала.
было бы круто если тайм коды были)) и когда будет новый вебинар уже заждался?))
Да, мы постоянно об этом думаем) не хватает времени немного чтобы заняться этим. Но обязательно сделаем)
@@ironskills-1c про вебинар или тайм коды?))
@@Barbin4ik тайм-коды) вебинар на следующей неделе будет, приболел немного, поэтому на этой неделе не сложилось...
@@ironskills-1c Выздоравливай!!!)))
Кстати поздравляю с 1к подписчиков)!
У вас есть уроки по созданию мобильных приложений?
Пока что нет, Дмитрий
У меня все окэй работает на моем компе а на сервере этот код не работает и вроде ошибку не выдает просто не открывает ворд не реагирует
да, на сервере показать word нельзя) в общем случае сервер 1С запускается на отдельной машине
Почему нужно передавать табдок с клиента на сервер, а не возвращать уже готовый создав табдок на сервере или без разницы?
В целом можно и на сервере заполнять табличный документ и передавать на клиент. Жестких требований нет. Это просто стандартный подход)
Как создать внешнюю печатную форму с вордовским макетом и подключить его в нужные документы?????
Александр, это мы рассмотрим в одном из следующих видео на канале ;)
Доброго дня. Может будет человек, который мне поможет. Я работаю над созданием печатных форм для дальнейшей печати документов организации в 1С:УНФ. У меня получалось находить всё и всегда, но уже более месяца-двух, я оставляю недоделанными задания из-за того, что я не могу никак вытянуть откуда-то должность основного контактного лица контрагента. Я уже отчаялся окончательно. Изучил все модули, но там нигде не работают с контактными лицами.
На форумах молчат ?
26:18, 1:16:24 / 1:33:14
сохранить *.mp4 - читабельно(vlc), но вот из ютуба -нет
А откуда информация, что если изменяет, то модуль объекта, в противном случае модуль менеджера ? В случае печати одного документа, как в примере, красивее как раз использовать модуль объекта. Просто ТабДок = Объект.Печать(). Вот для множественной печати удобнее модуль менеджера. P.S. Работаю с обычными формами, а там модуля менеджера раньше вообще не существовало, так что могу ошибаться.
В ООП есть понятия "статические" и "динамические" методы. Суть в том, что для вызова статического метода не нужно создавать экземпляр объекта, а для вызова динамического метода - нужно. Тут проблема в избыточном чтении данных. Если метод описывать в модуле объекта, то для его вызова нужно создать экземпляр объекта (по-сути прочитать его), пример: ДокОбъект = СсылкаНаДокумент.ПолучитьОбъект();//вот тут избыточное чтение объекта ТабДок = ДокОбъект.Печать(); Если же метод описывать в модуле менеджера, то для его вызова не нужно создавать экземпляр объекта (нет избыточного чтения), пример: Документы.РеализацияТоваровУслуг.Печать(СсылкаНаДокумент, Печать); Из этого можно сделать вывод: если метод только читает данные объекта (не изменяет), то чтобы при вызове метода не делать избыточного чтения объекта, метод есть смысл расположить в модуле менеджера. Если метод не только читает данные объекта, но и изменяет их, то есть смысл метод расположить в модуле объекта, потому что прочитать данные все равно придется, прежде чем их изменять. Это не только к методам печати относится, а в целом к построению системы с точки зрения объектного подхода.
@@ironskills-1c Интересная идея, не знал. Еще хочу отметить, что если в макете и запросе сделать одинаковые названия, то не нужно прописывать значение каждого параметра. Например ОбластьШапка.Параметры.Заполнить(ВыборкаШапка)
1:56:10 Как вы это сделали - вставили сразу несколько строк.
Это механизм шаблонов текста (в конфигураторе меню Сервис - Шаблоны текста)
Благодарю!
А как же заполнить Колонтитул Word файла(
На сайте Microsoft расписана вся объектная модель Word'а. Открываете и смотрите, какие есть свойства и методы колонтитулов. Ничего проще нет.
Как поставить два или больше лайкосов?:)
делайте пожалуста разработка с мобилный приложениями 1с
Спасибо за тему, обязательно сделаем видео на тему разработки мобильных приложений на 1С)
С вордом не актульно, работает только на локальном компьютере, с сервера не открывается
Да, открывать word на сервере не имеет смысла, но на сервере можно, например, сохранять файл в файловую систему сервера)
@@ironskills-1c вот это и непонятно, очень мало инфы по этому поводу(
все ОК,, но код не видно , размыт
1:33:15 - "Active document" -херня полная - использовать можно будет только на клиенте. На сервере такой макет получить и заполнить не получится. Про самое лучшее решение - использование шаблона docx и заполнение его через zip ничего не сказано.
Какие минусы у шаблона docx ?
столько воды, это слушать просто невозможно. видео для людей которые 1с первый раз увидели, но им оно не нужно, видео 2 часа информации на 15 минут с натяжкой
Спасибо за комментарий, Алексей) Да, видео для начинающих, воду постарались всю выжать насколько это возможно)
Есть, кстати, другой канал, где тема программирования раскрывается в более быстром темпе: kzhead.info/sun/nNibqsd5maiZh6M/bejne.html
@@ironskills-1c Ваш мастер-класс про печатную форму более понятен, оба видео
Как же я ненавижу этот 1с
за что?)