Печать в Word из 1С (БСП)
HTML-код
- Опубликовано: 5 янв 2025
- 🔴Печать в Word из 1С (БСП)
Из этого видео вы узнаете как создать печатную форму 1С с выводом в Word, используя библиотеку стандартных подсистем (БСП).
Презентация: clck.ru/i5RJY
Поддержать канал можно по ссылке: donate.stream/...
☝Записаться на курс "Профессия программист 1С: с нуля до профи": ironskills.by/...
✅Подписывайтесь на наш канал чтобы первыми получать новые видео.
#1с #1с_бсп #ironskills
---
С уважением, команда IRONSKILLS
Пожалуйста не останавливайтесь, ваша подача материала заходит мне лучше всех курсов 1с
Ставлю лайк, конечно.
Недавно буквально делал вывод инфы из 1с в ворд документ правда без БСП !
Там есть хитрость, если расширение "docx" поменять на "zip" то вордовский файл превращается в архив в котором много интересных файлов в том числе "document.xml" в котором и хранится вся текстовая информация. Тоже присваивал свои теги в фигурных скобках в шаблоне и через "СтрЗаменить" уже делал замену.
Огромное спасибо за видео! Все четно и теме, соглашусь с комментариями ниже, заходит получше многих курсов. Конечно лайк и ждем новых видео.
Как же классно все рассказано и показано! Спасибо Вам!
Спасибо !!! ( считаю что БСП нужно или запретить, или изучить. Все что по середине - издевательство над мозгом. ) Вам - агромадный респект!
Большое спасибо за это видео. Все понятно. С уважением.
Спасибо, нечасто увидишь достаточно хороший стиль написания кода.
Наткнулся на видео именно тогда, когда поступило точно такое же ТЗ, спасибо !
Огромнейшее спасибо Вам. Очень помогаете своими видео.
Здравствуйте!) Вот это: ruclips.net/video/OMhNFmqb8vI/видео.html
Спасибо вам, как выручили. Мне по ТЗ надо принимать JSON, формировать документ и отправлять в ответе печатную форму WORD. Все перелапатил, везде WORD на клиенте. А тут по ссылке все получаем на сервере!
Долго Вас не было )))
Долго ждали выхода нового видео. Спасибо большое !!! Интересно будет видео посвящено подключении GPS и Google map ? 🌍
Иван лучший!)
Огромное спасибо!!!
Парни вы гении!!!
Дай бог вам здоровья!!!
Спасибо за видео! Было бы интересно в будущем послушать про расширения конфигурации) как вариант темы)
Блин красавчики, ваши темы и умение её изложить просто супер!!!
Спасибо за видео! Сделал на основе его 2 ВПФ для ЗУП.
Класс!!! Бесценные уроки!
Спасибо большое, всегда что то новое !
Хорошая работа. Спасибо.
Иван лучший!!!!!!!!!
Комментарий в поддержку канала😀
Благодарю.
Почему эти знания не дают во франшизах 1С ?? Я целый год на угад тыкал чтобы хоть что то получилось!
Спасибо вам огромное
Наконец то нормальное пояснение как это делать. Авторам статей на ИТС стоило бы поучиться...
Спасибо, что просвещаете нас такими полезными знаниями! Я смотрю, это последнее видео было год назад. Будет ли еще видео про подсистемы БСП?
Да, будут ролики по БСП)
Разрабатывал впф.
И была проблема с тем, когда соответсвие 'офисные документы' остается пустым. Тогда выдавало ошибку.
Добавил в процедуру Печать условие на проверку кол-ва элентов в этом соответствие. И если оно пустое - ПФ.офисные документы не заполняю.
И обязательно указываю там же ПФ.ТабличныйДокумент = Новый ТабличныйДокумент.
Тогда появляется стандартная надпись "Печатная форма не доступна".
Удобно если документ должен соответствовать каким то условим.
Так-то в процедуре НапечататьКоммерческоеПредложение запрос в цикле, если будет печататься несколько документов, надо бы весь массив объектов в запрос с условием ставить
Хоть бы ссылку на предыдущий урок по формированию печатной формы оставили. Непонятно от куда взялась процедура "ДобавитьКомандуПечати". Где расположена команда печати? Почему так нескладно???
Подскажите а можно ли такую же тему с тегами провернуть в Ecxel'е. Чтобы можно просто добавить файл Ecxel как печатную форму
Шикарное объяснение! Спасибо! Только подскажите пожалуйста, как выводить таблицу произвольной ширины?
Если результирующая таблица от случая к случаю имеет разное количество колонок - от 2 до 7. И это определяется только в ходе обработки результатов запроса.
При печати на основе табличного макета размечал область и делал Область.Присоединить для очередного столбца. А как здесь разметить шаблон и в дальнейшем корректно вставить в него данные?
Будет ли видео про особенности программирования в 1С Бухгалтерия ? (как добавить новые счета, подключения с банк-клиентом и др.)
Всем привет) В таком макете как можно сделать горизонтальное положение для отдельно взятых страниц?
Будет ли это работать если печатная форма внешняя?
как это реализовать для внешней обработки? нормальной информации нигде нету(
Добрый день! Все замечательно описано, но в моем случае сформированная печатная форма отличается форматированием от изначального шаблона. При заполнении документа изменяется межстрочный интервал, и форма выглядит совсем не так как задумывалось. Какие варианты есть победить данную проблему?
Спасибо за видео! Планируется ли рассматривать другие системы БСП? Например, Префиксация или Структура подчиненности?
Да, их покажем тоже)
Прекрасный материал. СПасибо!!
А как выводить таблицу с иерархией? Таким способом выводится не построчно и не получается сделать проверки, чтобы не выводилась одна и та же строка.
ЧЁртов Гудини! Прекрасный материал!
Спасибо! подскажите пожалуйста, как нумерацию страниц? уже долго сижу, не могу понять
Если в представлении контрагента или в представлении организации будут скобки, то файл не сохранится.
Спасибо, Антон, за то что обратили внимание, действительно этот момент нужно в коде обработать)
Добрый день, возможно данным способом выводить подложку документа?
Воспользовался данным кодом. Подскажи, как реализовать вот эту часть кода, чтобы не добавлялись строки, а заполнялись строки таблицы в ворде. Строк фиксированное количество.
( Если ДанныеТовары.Количество() > 0 Тогда
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["ШапкаТаблицы"]);
УправлениеПечатью.ПрисоединитьОбласть(ПечатнаяФорма, Область, Ложь);
Область = УправлениеПечатью.ОбластьМакета(Макет, ОписаниеОбластей["СтрокаТаблицы"]);
УправлениеПечатью.ПрисоединитьИЗаполнитьКоллекцию(ПечатнаяФорма, Область, ДанныеТовары);
КонецЕсли;)
Все хорошо. НО! К сожалению не получается создать области со своими произвольными именами. Мне нужно собирать договор из разных части и каждом своеи параметры. А тут так, если область назвал "Заголовок", то все хорошо, а если назвал "Заглавие", все - ничего никуда не выводится.
Ролик полезный, но было бы лучше если бы все это было рассмотрено на базе расширения, иначе при обновлении типовой придется тратить время на мерж изменений.
Для подобных форм лучше сделать один раз шаблон расширения и каждую форму делать отдельным расширением.
А чем расширение лучше, если с ней одновременно не могут работать программисты? Или, сделал обработку и только ее влить в расширение уже ни как, вот и выгоняй всех из расширения и кучу таблиц и реквизитов заимствуй из основной конфы, а остальные сидят и ждут когда ты всё позаимствуешь 😂
@@evgeniuxp2evgeniuxp234 а как программисты работаю с одной cf? Если работает несколько программистов есть хранилище. Расширение хорошо тем что не нужно снимать с поддержки типовые объекты и проще передать другому клиенту. Вот представь что нужно эту форму передать другому клиенту или выложить на infostart как это сделать?
@@You2Ber42 , то что не нужно снимать с поддержки - я в курсе, а вот как одновременно с одним расширением могли работать два программиста и каждый внес свои изменения в одно общее расширение - не в курсе. Если загружать расширение, то затрешь, то что другие делали, это надо выгружать и вновь вносить изменения и потом обратно загружать, только лишь бы за этот период туда снова что-то не внесли.
@@evgeniuxp2evgeniuxp234 для этого есть хранилище в конфигураторе и git в EDT.
@@You2Ber42 , хранилище я знаю, но пользовался только в части основной конфигурации, давно. EDT местные не используют и хранилище тоже. Спасибо за наводку.
Добрый вечер! Все сделала по инструкции 1с 8.3. В результате в Предприятии в макетах шаблон ворд появился, а при нажатии на кнопку Печать - выкидывает на ошибку Макет не найден в общий модуль, где написано если шаблон начинается ПФ_ то выбросить ошибку... перерыла все на свете, не нашла. Может вы подскажете? Буду признательна всем за любую помощь
Здравствуйте!) Возможно, есть ошибка в пути к макету, нужно проверить, какой путь указан в методе ПолучитьМакет()
Подскажите пожалуйста, а есть ли возможность подставлять картинки в шаблоны такого вида?
Да, можно, фрагмент кода для примера доступен по ссылке: paste1c.ru/3z8k7ulb44ai
@@ironskills-1c здравствуйте . сделал все как у вас , но получаю ошибку "Ошибка при вызове метода контекста (ЗаписатьНачалоЭлемента)"
метод этот почти в самом конце используется , когда подставляем данные из структуры в форму. в чем причина может быть ? может знаете ?
Можно ссылку на презентацию обновить?
Спасибо большое! А как вывести сквозные строки заголовка таблицы?
Для соединения информационной базы 1С с файлом Microsoft Office и LibreOffice используют COM-объекты. Можно ли работать с Р7-Офис и МойОфис в системе 1C через COM-соединения?
Какой МойОфис? ))) Да там вообще ничего нельзя. Там и половины функционала Word нет! Не понимаю, как можно пользоваться таким шлаком.
Из бесплатных можно в WPS и OnlyOffice
Добрый день, Иван.
Спасибо большое за ваши уроки.
Проделал рассмотренный пример с выводом в Word - все получилось.
Но когда я пытаюсь аналогичный же макет выводить в Open Office Writer, то
в строке Макет = УправлениеПечатью.ИнициализироватьМакетОфисногоДокумента(МакетДокумента, Неопределено);
получаю исключение:
"Ошибка анализа макета шаблона.
Макет шаблона офисного документа имеет не верный формат."
Вы не могли бы помочь разобраться с этой проблемой?
Здравствуйте, Дмитрий) Лучше поздно чем никогда)) можете нам в бот написать (нужна будет выгрузка базы): t.me/ironskills_bot
Добрый день!
Не раскроете секрет, в чем была проблема? сейчас столкнулся с аналогичной ошибкой
@@ДмитрийМосквин-э6е Тоже столкнулся с такой проблемой. Open Office Writer как-то некорректно сохраняет .docx. Решил тем, что загрузил файл в GoogleDoc и сохранил оттуда. Все заработало.😄
Здравствуйте! Очень интересное и познавательное видео.) Подскажите, пожалуйста, есть ли возможность выводить печатные формы, сформированные таким образом сразу на принтер, то есть без открытия файла MS Word?
Здравствуйте, Евгения! Да, это можно реализовать)
ПриложениеWord = Новый COMОбъект("Word.Application");
//....заполнение документа...
ПриложениеWord .ActiveDocument.PrintOut();
Там в БСП миллион общих модулей и в каждом по сотне процедур-функций. Иногда проще быстро накидать свою, чем искать среди всего этого многообразия нужную, которой, возможно, там, вообще, нет.
А ещё БСП бывает меняется при обновлении. И доработка с функциями из БСП отваливается.
@@Anton-ni8un можете продолжать свое демонстрировать: опущенного и униженного как вы выразились.
@@evgeniuxp2evgeniuxp234, ясно малолетний неадекват всё таки.
Подскажите пожалуйста, как это сделать через расширение, в модуле менеджера в расширении не получается добавить функцию ДобавитьКомандыПечати, пишет, что эта функция уже есть
Михаил, нужно в основной конфигурации найти в модуле менеджера нужного документа эту функцию, добавить в расширение и добавить уже в модуле расширения нужные команды.
Здравствуйте, подскажите пожалуйста, а возможно реализовать ВПФ в Word с использованием БСП?
Да, можно. Все также делаешь, как для ВНФ с выводом в табличный документ: регистрация, команды, а затем там же, в модуле объекте пишешь функцию печать и погнал как в видео.
для внешней подключаемой печатной формы, то же самое как делать...
Спасибо, с БСП не был знаком, узнал что все функции которые обычно пишем для формирования COM объекта Ворд (Word = Новый COMОбъект ("Word.Application")) уже есть. Только кода становится чуть больше за счет дополнительных промежуточных структур, и массивов структур, но в принципе выглядит лаконично.
Кстати тем, кому нужна просто внешняя печатная форма на своей кнопке без лишних процедур, то в основной процедуре создающей Печатную форму переменной Макет присваиваем свой Двоичный макет, и добавляем в конце одну строчку кода ПечатнаяФорма.COMСоединение.Application.Visible = Истина; откроется заполненный вордовский файл. Всем успехов в освоении безграничной 1С.
Добрый день, база 1с файловая или серверная?
А как можно начать новую страницу. Нужно в Ворд выести таблицу. Каждая строка на новой странице.
Магия.
пушка
У меня почему-то спрашивает перед открытием куда сохранить ворд документ. Если не выбираю то он не открывается. Что можно сделать чтобы без сохранения просто открывался документ?
Спасибо за видео, решил попробывать аналогичную ПФ сделать, но столкнулся с проблемой , не пойму как выводить картинку номенклатуры в СтрокаТаблицы. Не наталкнёте на мысль ? Как это сделать
Попробуйте так:
СтруктураКартинки = ПрисоединенныеФайлы.ПолучитьДанныеФайла(ФаксимилеПодписи);
Картинка = СтруктураКартинки.СсылкаНаДвоичныеДанныеФайла;
ДанныеПодвала.Вставить("Печать", Картинка);
@@ironskills-1c Здравствуйте, а ДанныеПодвала это где прописывать?
Получилось вывести картинку в СтрокуТаблицы?
Файл сохраняется в Temp. Как бы сделать, чтобы в другом каталоге сохранялось. Реализовывали такое?
Нет, такой задачи не стояло, а для чего может понадобиться сохранять временный файл в другом каталоге?
Подскажите, а как сделать разрыв страницы в таком случае?
Добрый день! Подскажите, пожалуйста, вам удалось добавить разрыв страницы? Я так понимаю у вас тоже была задача на вывод нескольких документов в один файл word?
@@Kaizoku_junk разрыв сделал так. Добавил в самом Ворде чистый лист с разрывом страницы. А его обвернул тегом области. И вывожу эту область когда надо. Получается разрыв страницы. Из разных документов задачи не стояло склеивать. У меня все в одном было.
Добрый день. А как вывести печатную форму где есть таблица внутри колонок другой таблицы?
Хороший вопрос, сходу не готов сказать, нужно попробовать на примере)
Как сделать так чтобы пробелы в конце не резались. Например "проверка ". Пробел не тянется
Возможно, к строке применяются функции СокрЛ(), СокрП(), СокрЛП(). Если нужны пробелы в строке, их применять не следует тогда ;)
поставлю лайк если покажешь тоже самое, но для внешней подключаемой печатной формы. Будь мужиком..а?
А с Excel такое можно провернуть?
В 1С есть свой формат MXL - табличный документ, это в какой-то степень аналог Excel)
@@ironskills-1cЯ не про это спрашивал. Про ТабличныйДокумент, я думаю, все в курсе.
Кто-нибудь может подсказать, как сделать сохранение полученного файла по конкретному пути, а не в папку temp?
а выгрузки нету?
Спасибо за урок! Интересно, можно ли объединять в один документ экземпляры печати(документы)? Через таб док можно 100%, а тут не нашёл как
А если у меня нету областей только параметры?
помнится, что Чистов довольно резко высказывался касательно выгрузки результатов запроса в тз. а тут получается она родимая
Если данных немного, выгрузка в ТЗ не повредит ;)
Выборка во время её существования хранится во временных файлах 1С, а выгрузка во время её существования хранится в оперативной памяти.
Соответственно, если оперативная память позволяет, то работа с выгрузкой будет несколько быстрее, чем с выборкой.
@@Anton-ni8un всегда есть определенные допущения в том или ином случае. но все же следует опираться на рекомендации и стандарты от самой 1с. сейчас память позволяет, а потом в процессе эксплуатации ис объем данных существенно вырос.
@@Anton-ni8un а временные файлы формируются минуя ОЗУ? Для печатных форм, когда объем данных результата запроса измеряется килобайтами, а время жизни объекта Выборка миллисекундами, удобней таблица значений из-за простой отладки. В телеге пишут, разработчики платформы меняли механизм работы с выборками в одном из последних релизов.
@@fedorsumkin2028, то, что я писал выше, это оказывается применимо только к 32-разрядной платформе.
В 64-разрядной платформе и результат запроса, и выгрузка хранятся в оперативной памяти сервера.
Видео оторвалось от контекста БСП. Теперь, когда в БСП появился конструктор макетов word, это видео частично потеряло актуальность.
Что за конструктор появился(на ИТС может статья есть с описанием или просто пример можно посмотреть в какой то конфе)? И как ты узнал об этом?
Как то сложно, есть же варианты заполнения word попроще
Странно, но почему-то никакой Word не выходит, вроде бы все сделала как в видео, но ни ошибок ни самого документа
Проверьте, что word на клиенте открывается
@@ironskills-1c Не прошло и полгода, как у меня получилось. Видимо первый раз я где-то что-то пропустила
Автопрагмат вроде тачки подбирает
есть такое, да)
Не совсем понял зачем нужны эти области. В 99% случаев область одна и содержит она весь документ. И чем плохи были обычные закладки word - только лишний геморрой теперь все параметры указывать таким образом (как минимум языки 2 лишних раза переключать надо для его задания).
Спасибо за комментарий! Да, можно и закладками реализовать) Области хороши тем, что можно на основе одного шаблона разные печатные формы создавать (с разным набором областей).
одни маты хочется написать! вы вообще в курсе как учить!? мне нужно просто печать ворд документа и все!!
сейчас на примере: мне нужно колесо, зачем вы мне рассказываете как создать феррари!? у которой есть колесо??
как просто выывести макет? я не понял! я не программист 1с, мне на заводе нужно листики готовить с одинаковым текстом и разной датой, я хотел облегчить себе жизнь, а из за вас она сильно усложнилась! еще и называетесь курсы!!! вы так ни кого не научите!!!!Ужас! полный!
смотрел у других ребят уроки, они делают так: если написать это произойдет следующее, а если это то вот так ... и там все понятно после чего у тебя появится макет! а тут нужно несколько часов потрать что бы понять что вы делаете и где это колесо все таки появляется! ужас! по выделываться хорошее видео но как урок отстой !
Если вы чего-то не поняли, значит вы не являетесь целевой аудиторией этого видео. Посмотрите более простые примеры, Word - не является наиболее типовым способом для того, о чем вы говорите. В 1С печатные формы в основном на табличных документах построены. И да, простота 1С сильно преувеличена маркетологами разных курсов.