Заполнение шаблона Word на сервере, без использования MS Office (docx -> zip -> xml). Предусмотрен вывод табличных частей

Публикация № 675307 04.10.17

Бухгалтерский учет - Печатные формы - Универсальные печатные формы

1C отчет шаблон word на сервере сервер xml docx таблица

Шаблон в Word, управляемые формы. Создание заполнение документа Word (docx -> zip -> xml) по шаблону на сервере без использования MS Office. Предусмотрен вывод табличных частей.

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

Чтобы избавиться от всех прелестей этой прекрасной пары 1с+Word, решил отказаться от Word, хотя над первым может тоже стоило подумать?

Формат MS Word (docx)  - это по сути zip архив с набором xml файлов (Office Open XML). Меняя определенные файлы xml, можно добиться заполнения своего шаблона.

Всю красоту парсинга XML,  из 1с уверен, вы сможете или уже смогли оценить в своей работе.

О решении:

Результатом решения стал общий модуль осуществляющий всю работу по заполнению шаблона.

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

Процедура ответственная за заполнение шаблона:

ОбработатьФайлDocx(ФайлШаблона,ПараметрыЗаполнения, ШаблоныКЗамене)

  • ФайлШаблона  - (тип: "Строка") Путь к файлу шаблону.
  • ПараметрыЗаполнения  - (тип: "Структура") содежащую символ начала, окончания шаблона.
  • ШаблоныКЗамене - (тип: "Таблица значений") с параметрами, содержащую колонки:  ИмяПараметраВWord - строка с именем шаблона который будет заменен. Результат - Содержит значение на которое будет заменен шаблон.

 

Колонка «Результат»  из «ШаблоныКЗамене»  может иметь тип: "Строка" или "Массив" (содержащий строки).

  • Колонка «Результат» тип "Строка" - заменяет шаблон. 
  • Колонка «Результат» тип "Массив" (содержащий строки). - заменяет шаблон. перечисляет строки через ";", Но если он использован в word таблице, то добавляет строки (если значений в массиве больше чем одно) и расставляет значения. 

Пример 1:

ШаблоныКЗамене имеет строки:

ИмяПараметраВWord = «массив 1» , Результат(массив) содержит два значения: ("Значение 1 массив 1"; "Значение 2 массив 1" ,

ИмяПараметраВWord =  «массив 2», Результат(массив) содержит три значения:("Значение 1 массив 2";"Значение 2 массив 2";"Значение 3 массив 2") :

Пример шаблона в таблице word:

<массив 1>

<массив 2>

 

Результат:

Значение 1 массив 1

Значение 1 массив 2

Значение 2 массив 1

Значение 2 массив 2

 

Значение 3 массив 2

 

Пример 2:

ШаблоныКЗамене имеет строку:

ИмяПараметраВWord = «МассивЧленыКомиссии» ; Результат(массив) содержит значения: ("Прохоров Сергей Петрович"; "Петров Адрей Федорович"; "Смирнов Антон Викторович")

 

Шаблон:

Члены комиссии

   

<МассивЧленыКомиссии>

 

Результат:

Члены комиссии

   

Прохоров Сергей Петрович

     

Петров Адрей Федорович

     

Смирнов Антон Викторович

 

Жду ваших комментариев и предложений.

Модуль можете использовать для коммерческого использования, однако прошу не удалять ссылку на мои реквизиты.

 

Скачать файлы

Наименование Файл Версия Размер
Версия 1.0.2 Исправлено: Пропадали пробелы. В отдельных случаях результат не открывался WORD.

.epf 34,35Kb
139
.epf 34,35Kb 139 Скачать
Версия 1.0.1 Шаблон в Word. Без использования MS Office. Предусмотрен вывод таблиц

.epf 34,24Kb
127
.epf 1.0.1 34,24Kb 127 Скачать

Специальные предложения

Вознаграждение за ответ
Показать полностью
Лучшие комментарии
15. andrewbc 293 22.03.19 15:55 Сейчас в теме
Дорогой мой человек, спасибо огромное!

Сам начал было этим заниматься, но времени катастрофически в обрез.
Спас.
11 шаблонов за 1 сутки (с учетом адаптации кода под свою задачу - порядка 80-ти рассчитываемых параметров, включая несколько таблиц).
Все отрабатывает шикарно.

Замечания / предложения:
1. В ячейке таблицы только в первой строке остается перенос строк, в остальных перевод строки заменяется на пробел. (Понял, что не доработаны параграфы для дополнительных строк). Считаю, небольшая недоработка.
2. Нужно было вывести картинку - я не стал заморачиваться, в папке "\word\media\" просто перезаписывал файл "image1.jpeg". Понимаю, что нужно через таблицу связей обрабатывать, но времени нет. Может, есть решение?

А в остальном - все ок.
Могу прислать разумную рублевую благодарность после сдачи своего проекта (стукни в личку).
AlexK_2012; Alien_job; jONES1979; +3 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4547 04.10.17 23:49 Сейчас в теме
В конфигурации, разработанной нашей конторой по заказу одного госучреждения, прямое потрошение парсинг шаблонов Word для генерации договоров и прочего барахла работает с 2013 года. Только механизм вставки таблиц там довольно слабый. Скорее его нет, чем есть.
2. Automatik 07.10.17 07:17 Сейчас в теме
Спасибо! Наверняка пригодится для моей публикации https://infostart.ru/public/595984/
3. sytkosa 20.11.17 03:32 Сейчас в теме
С макетами сформированными в формате docx отличным от 2010 office будет работать? Например в макете созданным и сохраненным в 2016 word?
7. artms 247 27.09.18 09:04 Сейчас в теме +10 $m
4. Dimasik2007 421 15.02.18 15:59 Сейчас в теме
(0) Автору спасибо, формируется все быстро. Интгерировал с подсистемой "Печать" БСП. Также добавил возможность вставки картинки в документ (реализовал заменой картинки-эталона в папке media). Тестировал на 2010 офисе.
5. websamson 303 07.06.18 10:27 Сейчас в теме
Спасибо, работает! Только добавьте в описание, что в макете после параметров нужно добавлять пробел, иначе параметр не отображается на печати.
6. XelOla 17 11.09.18 14:59 Сейчас в теме
(5)
макете после параметров нужно добавлять пробел, иначе параметр не отображается на печати.

как это
8. artms 247 27.09.18 09:08 Сейчас в теме
(6) В Word пробел может записываться в XML специальным тегом (не всегда) . В некоторых ситуациях такое возникало, ошибку исправил, но пока не опубликовал решение в виду низкой популярности статьи. Проблема решается в шаблоне удалением строки и добавлением новой или копированием такой, где проблема не возникала.
28. artms 247 26.12.19 09:07 Сейчас в теме
20. artms 247 05.08.19 17:38 Сейчас в теме
9. KRIHA 90 12.11.18 11:05 Сейчас в теме
Спасибо вам большое, гражданин, за проделанную работу. Считаю ваше решение красивым, до сих пор в восторге от волшебства:

Функция СоединитьШаблоны(Теги,ПараметрыЗаполнения)

Всех благ!
P.S.
Использовал в https://infostart.ru/public/937082/
10. allexx 38 24.11.18 16:55 Сейчас в теме
Все хорошо работает. Одна только проблема - это ориентация Ландшафт. На последующих страницах можно вставлять разрывы, а вот как первую страницу заставить быть ландшафтной? Для себя выкрутился с помощью MSWord.Application.Selection.PageSetup.Orientation = 1, но это не совсем правильно. Остальные в портрете все делают что ли?
11. artms 247 21.12.18 15:53 Сейчас в теме
(10) Тестировал в ландшафте, проблем не возникло. Однако возможно рассматривается случай совмещения различных ориентации в одном документе, такой случай не тестировал.
12. allexx 38 22.12.18 15:19 Сейчас в теме
Может быть от версий офиса зависит, но я вроде на разных пробовал и результат один и тот же. Вот такая же проблема описывается https://answers.microsoft.com/en-us/msoffice/forum/all/selectioninsertfile-does-not-preserve-pagesetup/a393e023-6b92-4a91-a58d-3bd55c29c441
Когда дальше стал тестировать, то выяснилось, что и размеры полей берутся по умолчанию, а не из подготовленного документа.
13. artms 247 18.01.19 08:52 Сейчас в теме
(12) Нужны примеры, для исправления, но рейтинг разработки низкий нет смысла поддерживать.
14. user864530 05.02.19 12:25 Сейчас в теме
Вопрос? Как обработка работает с нижним и верхним колонтитулом и вставка разрывы страниц для изменения ориентации страницы в документе.
15. andrewbc 293 22.03.19 15:55 Сейчас в теме
Дорогой мой человек, спасибо огромное!

Сам начал было этим заниматься, но времени катастрофически в обрез.
Спас.
11 шаблонов за 1 сутки (с учетом адаптации кода под свою задачу - порядка 80-ти рассчитываемых параметров, включая несколько таблиц).
Все отрабатывает шикарно.

Замечания / предложения:
1. В ячейке таблицы только в первой строке остается перенос строк, в остальных перевод строки заменяется на пробел. (Понял, что не доработаны параграфы для дополнительных строк). Считаю, небольшая недоработка.
2. Нужно было вывести картинку - я не стал заморачиваться, в папке "\word\media\" просто перезаписывал файл "image1.jpeg". Понимаю, что нужно через таблицу связей обрабатывать, но времени нет. Может, есть решение?

А в остальном - все ок.
Могу прислать разумную рублевую благодарность после сдачи своего проекта (стукни в личку).
AlexK_2012; Alien_job; jONES1979; +3 Ответить
16. artms 247 28.03.19 15:13 Сейчас в теме
(15) Спасибо за отзыв.
Извини за недоработки. Пока обновлений нет из-за низкой популярности модуля, возможно будут позднее.
17. as7bs 208 24.07.19 13:00 Сейчас в теме
Добрый день. Подскажите, а можно ли реализовать в цикле вывод повторяющегося текста на отдельных листах? Нужно после основного текста вывести несколько приложений, в каждом текст(Заголовок) и таблица. Количество приложений заранее неизвестно.
18. as7bs 208 24.07.19 19:24 Сейчас в теме
(17) Реализовал, програмно обрабатывая шаблон файла после его загрузки в обработку, точнее ТегиСШаблонами полученные из шаблона файла. В цикле вставляю данные находящиеся между определенными метками в шаблоне(НачалоПовтораПриложений и ОкончаниеПовтораПриложений). Если есть более правильный или красивый вариант буду рад если расскажете.
19. artms 247 29.07.19 09:43 Сейчас в теме
(18) Добрый день. Такая задача не стояла. Делал бы аналогично. Разница могла быть только в реализации.
21. Euroset1 11 06.11.19 11:27 Сейчас в теме
Автору однозначно плюс за, по сути, мануал а ля "быстрый старт" по работе с Open XML. За этим способом, будущее, кстати. Не знаю, почему он так редок в использовании. Например, задача по рассылке сервером по расписанию кадровых документов сотрудникам решается только этим способом.
o.nikolaev; +1 Ответить
22. artms 247 06.11.19 15:35 Сейчас в теме
(21) На самом деле речь шла не о мануале, а о модуле, который решает проблемы: разбиение строки шаблона в xml, и заполнение таблиц Word.
23. Euroset1 11 06.11.19 20:41 Сейчас в теме
(22) если отказаться от спецсимволов и вводить в шаблон теги монотонно без копипоста и за один раз типа ДатаПолученияДоговора или НомерСтроки, то этот текст будет лежать в одном теге гарантированно. Мне норм. Не вижу основания использовать скобки для тегов теперь, обладая этими экспериментальными данными =)
24. artms 247 13.11.19 17:21 Сейчас в теме
(23) 1. Увы это не так, зависит от настроек авто форматирования, выделения ошибок и ещё чего то, что ещё не выяснил.
2. И опять же упустили момент вывода таблиц (могу добавлять строки из массива).
3. По Т.З. на создание модуля нужно было дать возможность через БСП изменять макет клиенту, увы ваш вариант на это не способен. Клиент легко разделит вам шаблон. Пробовал указанный способ, но увы Word и другие редакторы, обожают разбивать целые слова на части, что делает сложным настройку даже разработчику (потратил на эту схему прямой замены много часов, поскольку сложно найти обрубок шаблона в xml, а затем убрать лишние теги, которых часто не оправдано много).
29. odinassdeveloper 28.01.20 15:59 Сейчас в теме
(24)
увы Word и другие редакторы, обожают разбивать целые слова на части


вы имеете ввиду, что в исходном шаблоне *.docx текст типа "Оплата заказ не позднее [ДатаПолученияДоговора]" может быть раскидан частями по нескольким узлам XML в зависимости от того, как пользовтель оформлял шаблон?
30. artms 247 29.01.20 12:44 Сейчас в теме
(29) Не только. В Word есть проверка на грамматику и часть слова может быть выделена в отдельный блок, самим Word(ом).
25. o.nikolaev 204 19.11.19 18:41 Сейчас в теме
Подскажите, а если надо выполнять подстановку в колонтитулах, то аналогичным образом надо вначале разбирать xml в таблицу значений, а потом собирать?
26. artms 247 22.11.19 14:25 Сейчас в теме
(25) Такая задача не стояла, но посмотрел что необходимо сделать. Сейчас собирается разбирается только файл document.xml, а колонтитулы находятся в header1.xml,header2.xml,header3.xml. Предлагаю проверять наличие и менять аналогично document.xml файлы header1.xml,header2.xml,header3.xml.
По договоренности, могу сделать указанную доработку.
27. o.nikolaev 204 24.11.19 16:50 Сейчас в теме
(26) Спасибо. В конечном счете, все-таки стал использовать функции БСП. Если кому интересно, то в БСП 3.0 куча ошибок, которая нормально с форматом Open Office работать не позволяла. Но. С помощью расширения часть функций была взята из 3.01. После этого работа с шаблонами подстановки вида {v8 НомерДокумента} и пр. заработала нормально. Даже с заголовками, даже с фигурами и текстом в фигурах.

Но, при выводе многострочного блока - например табличной части - подглючивает, выдает сообщение типа "Документ неожиданно поврежден. Восстановить его средствами Microsoft Word?" при выборе "Да", вроде все открывается нормально. Причем в БСП 3.1 эта ошибка происходит прямо на демо-базе БСП. Но тем не менее, документ, в конечном счете, формируется без видимых повреждений.
31. archt 9 12.05.20 13:30 Сейчас в теме
Я правильно понимаю: установленный Microsoft Word не нужен?
Код открыт?
32. artms 247 15.05.20 17:12 Сейчас в теме
(31) Да все верно. "Модуль можете использовать для коммерческого использования, однако прошу не удалять ссылку на мои реквизиты."
33. archt 9 15.05.20 21:28 Сейчас в теме
34. suepifanov 562 07.09.20 13:49 Сейчас в теме
Подскажите пожалуйста - у меня в строке таблице в одной ячейке нужно использовать 2 параметра, например <МассивНоменклаутра> <МассивПроизводитель>. В таком случае первая строка выводится корректно, а вот дальше выводится только последний параметр <МассивПроизводитель>.
Это баг, или использование таких конструкций и не предполагалось?
35. artms 247 10.09.20 11:10 Сейчас в теме
(34) Для вывода колонки таблицы нужен массив с готовыми значениями. Вам следует подготовить одну переменную массив с собранными значениями или выводить только одно значение, которое будет выведено только в первой строке тогда там может быть и две переменные.
36. Ivon 662 28.10.20 19:05 Сейчас в теме
Спасибо, хорошая обработка. В процессе использования нашел некоторые моменты:
1) самый основной - нельзя передать разрыв строки.Символы.ПС не работает, Символ(11) выдает ошибку XML.Так же пробовал другие варианты - рабочего не нашел.
2) иногда параметр разбивается на 3 части в разных тегах: скобки отдельно, имя параметра внутри скобок отдельно. В результате такой параметр в шаблоне не определяется и не заполняется, хотя с этим и можно бороться разными методами
38. Ivon 662 29.10.20 15:23 Сейчас в теме
(36) Запилил разрыв строки по Символы.ПС.
Ваш код в функции ЗаполнитьШаблоны
			// Добавим сведенья для вставки параграфов вместо символов перевода строки.
			МассивСПереводамиСтрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ТекстКОбработке,Символы.ПС);
			Если МассивСПереводамиСтрок.Количество() Тогда
				РезультатСтрока.Текст = МассивСПереводамиСтрок[0];
			Иначе
				РезультатСтрока.Текст = ТекстКОбработке;
			КонецЕсли;
			Для СчП = 1 по МассивСПереводамиСтрок.Количество() -1  Цикл
				ПараграфыКДобавлению.Добавить(МассивСПереводамиСтрок[СчП]);
			КонецЦикла;
Показать

заменил следующим кодом
			// Добавим сведенья для вставки параграфов вместо символов перевода строки.
			МассивСПереводамиСтрок = РазобратьСтроку(ТекстКОбработке,Символы.ПС, Ложь, Истина);
			РезультатСтрока.Текст = МассивСПереводамиСтрок[0];
			Если МассивСПереводамиСтрок.Количество() > 1 Тогда
				Для СчП = 1 по МассивСПереводамиСтрок.Количество() - 1  Цикл
					СтрокаРазрыв = Результат.Добавить();
					СтрокаРазрыв.Имя = ТегРазрывСтроки();
					СтрокаРазрыв.Атрибуты = Новый Соответствие;
					СтрокаРазрыв.ТипУзла = ТипУзлаXML.НачалоЭлемента;
					СтрокаРазрыв.Текст = "";
					СтрокаРазрывКонец = Результат.Добавить();
					СтрокаРазрывКонец.Имя = ТегРазрывСтроки();
					СтрокаРазрывКонец.Атрибуты = Неопределено;
					СтрокаРазрывКонец.ТипУзла = ТипУзлаXML.КонецЭлемента;
					СтрокаРазрывКонец.Текст = "";
					СледСтрока = Результат.Добавить();
					СледСтрока.Имя = ТегРазрывСтроки();
					СледСтрока.Атрибуты = Новый Соответствие;
					СледСтрока.ТипУзла = ТипУзлаXML.Текст;
					СледСтрока.Текст = МассивСПереводамиСтрок[СчП];
				КонецЦикла;
			КонецЕсли;
Показать

Поскольку функции РазложитьСтрокуВМассивПодстрок у меня нет, а в интернете есть разные варианты этой функции, я заменил ее на свою функцию РазобратьСтроку
Функция РазобратьСтроку(_Строка, _Разделитель, _УдалятьПустые = Истина, _Массив = Ложь) Экспорт
	Если _Массив Тогда
		Результат = Новый Массив;
	Иначе
		Результат = Новый СписокЗначений;
	КонецЕсли;
	Если НЕ _Разделитель = Символы.ПС Тогда
		_т = СтрЗаменить(_Строка, _Разделитель, Символы.ПС);
	КонецЕсли;
	СтрокаИДПустыхСтрок = СтрЗаменить(Строка(Новый УникальныйИдентификатор()) + Строка(Новый УникальныйИдентификатор()), "-", "");
	Если не _УдалятьПустые Тогда
		_т = СтрЗаменить(_Строка, Символы.ПС, СтрокаИДПустыхСтрок + Символы.ПС + СтрокаИДПустыхСтрок);
	КонецЕсли;
	Для Строк = 1 по СтрЧислоСтрок(_т) Цикл
		СтрЗначение = СтрЗаменить(СтрПолучитьСтроку(_т, Строк), СтрокаИДПустыхСтрок, "");
		Если СтрДлина(СтрЗначение) = 0 Тогда
			Если не _УдалятьПустые Тогда
				Результат.Добавить(СтрЗначение);
			КонецЕсли;
		Иначе
			Результат.Добавить(СтрЗначение);
		КонецЕсли;
	КонецЦикла;
	
	Возврат Результат;
КонецФункции
Показать

СтрокаИДПустыхСтрок добавляется к Символы.ПС с двух сторон из-за того, что СтрЧислоСтрок не учитывает строки нулевой длины.
39. Ivon 662 30.10.20 11:43 Сейчас в теме
Нашел у себя ошибку в функции РазобратьСтроку
Код
    Если не _УдалятьПустые Тогда
        _т = СтрЗаменить(_Строка, Символы.ПС, СтрокаИДПустыхСтрок + Символы.ПС + СтрокаИДПустыхСтрок);
    КонецЕсли;

нужно заменить на
    Если не _УдалятьПустые Тогда
        _т = СтрЗаменить(_т, Символы.ПС, СтрокаИДПустыхСтрок + Символы.ПС + СтрокаИДПустыхСтрок);
    КонецЕсли;
41. Ivon 662 30.10.20 13:59 Сейчас в теме
(38) В общем, там еще в одном месте косяк с функцией.
Вот окончательный код (я надеюсь)
Функция РазобратьСтроку(_Строка, _Разделитель, _УдалятьПустые = Истина, _Массив = Ложь) Экспорт
	Если _Массив Тогда
		Результат = Новый Массив;
	Иначе
		Результат = Новый СписокЗначений;
	КонецЕсли;
	Если _Разделитель = Символы.ПС Тогда
		_т = _Строка;
	Иначе
		_т = СтрЗаменить(_Строка, _Разделитель, Символы.ПС);
	КонецЕсли;
	СтрокаИДПустыхСтрок = СтрЗаменить(Строка(Новый УникальныйИдентификатор()) + Строка(Новый УникальныйИдентификатор()), "-", "");
	Если не _УдалятьПустые Тогда
		_т = СтрЗаменить(_т, Символы.ПС, СтрокаИДПустыхСтрок + Символы.ПС + СтрокаИДПустыхСтрок);
	КонецЕсли;
	Для Строк = 1 по СтрЧислоСтрок(_т) Цикл
		СтрЗначение = СтрЗаменить(СтрПолучитьСтроку(_т, Строк), СтрокаИДПустыхСтрок, "");
		Если СтрДлина(СтрЗначение) = 0 Тогда
			Если не _УдалятьПустые Тогда
				Результат.Добавить(СтрЗначение);
			КонецЕсли;
		Иначе
			Результат.Добавить(СтрЗначение);
		КонецЕсли;
	КонецЦикла;
	
	Возврат Результат;
КонецФункции
Показать
37. Ivon 662 29.10.20 14:14 Сейчас в теме
Переделал функцию ЗаполнитьШаблоны. В вашей реализации, если в параметр подставляется большой текст, то функция в цикле лопатит каждую букву уже замененного текста так как у вас перебор строки идет от первой буквы к последней. Изменил алгоритм, чтобы строка перебиралась с конца, в результате получил прирост в скорости заполнения.
У вас вот так:
		Если РезультатСтрока.ТипУзла = ТипУзлаXML.Текст  Тогда
			
			ТекстКОбработке = РезультатСтрока.Текст;
			
			Для СчП = 1 по СтрДлина(ТекстКОбработке) Цикл
				Если Сред(ТекстКОбработке,СчП,1) =  ПараметрыЗаполнения.РазделительЛевый Тогда
					НомерСимволаНачало = СчП;
				КонецЕсли;
				Если Сред(ТекстКОбработке,СчП,1) =  ПараметрыЗаполнения.РазделительПравый Тогда
					
					ШаблонКЗамене = Сред(ТекстКОбработке,НомерСимволаНачало,СчП-НомерСимволаНачало+1);
					ШаблонКПоиску = Сред(ТекстКОбработке,НомерСимволаНачало+1,СчП-НомерСимволаНачало-1);
Показать

Я сделал вот так
			ТекстКОбработке = РезультатСтрока.Текст;
			ДлинаСтроки = СтрДлина(ТекстКОбработке);
			Для СчП = 0 по ДлинаСтроки - 1 Цикл
				Если Сред(ТекстКОбработке,ДлинаСтроки - СчП,1) =  ПараметрыЗаполнения.РазделительПравый Тогда
					НомерСимволаКонец = ДлинаСтроки - СчП;
				КонецЕсли;
				Если Сред(ТекстКОбработке,ДлинаСтроки - СчП,1) =  ПараметрыЗаполнения.РазделительЛевый Тогда
					НомерСимволаНачало = ДлинаСтроки - СчП;
					ШаблонКЗамене = Сред(ТекстКОбработке, НомерСимволаНачало,НомерСимволаКонец-НомерСимволаНачало+1);
					ШаблонКПоиску = Сред(ТекстКОбработке,НомерСимволаНачало+1,НомерСимволаКонец-НомерСимволаНачало-1);
Показать
40. ylyas 25 30.10.20 12:06 Сейчас в теме
ни фига не понимаю.. зачем вы придумываете велосипед.
1С уже все реализовала за вас. Надо только разобраться как этим пользоваться.
Простой шаблон у меня получилось заполнить. где есть одна большая область.
А вот как получать и заполнять вложенные области я пока не смог разобраться...
42. Ivon 662 30.10.20 14:00 Сейчас в теме
(40) Вы про обычные печатные формы на основе табличного документа?
44. ylyas 25 30.10.20 17:16 Сейчас в теме
(42)
я говорю про вывод вордовского документа параметрами подстановки без использования COM-а.
идет разбор document.xml и других вспомогательных файлов
Все уже написано, господа!!
43. suepifanov 562 30.10.20 14:21 Сейчас в теме
(40) в типовой бсп был другой способ, не разбор хмл. В свежей версии что-то поменялось?
45. ylyas 25 30.10.20 17:18 Сейчас в теме
(43)
я сам был не реально удивлен, когда столкнулся с этим вопросом и нашел такой интересный ответ.
Они даже расширение файла сами определяют по сигнатурам двоичных данных!!!
Кто то в 1с пришел прям из системных языков программирования как будто ))
57. user1434357 2 28.12.20 20:56 Сейчас в теме
(47)
(45)
(44)

Почитал статью на ИТС ниже, честно говоря не совсем понял как конкретно можно создать печатную форму. Именно для веб-клиента или фреша такой способ подойдет? Есть еще информация по теме? И где ты в итоге нашел ответ? уточни пжл
58. user1434357 2 28.12.20 22:47 Сейчас в теме
(45)
И еще такой момент, вроде из БСП получается распечатать шаблон, но только в EI. В Хроме никак. Или у меня что-то не то? Сначала выходила ошибка, что каталог для сохранения файла не указан, я в модуле дописал его, после этого выходит ошибка "Расширение для работы с файлами не подключено". Прямо из коробки в любом браузере не получится распечатать макет?
46. FatPanzer 15 30.10.20 17:31 Сейчас в теме
47. ylyas 25 30.10.20 17:34 Сейчас в теме
(46)
ну вот коллеги не знали.. я им рассказываю ))
48. suepifanov 562 30.10.20 17:42 Сейчас в теме
(47) поискал на итс, не нашел информации.
Год назад где-то писал печать КП - в итоге отказались из-за тормозов. Если теперь печатается разбором, то очень круто)
51. suepifanov 562 30.10.20 18:34 Сейчас в теме
(50)
Многие документы и списки программы имеют свои печатные формы. Печатные формы могут формироваться в виде табличных документов или офисных документов в формате Office Open XML. Внешний вид и состав печатных форм можно настраивать, не внося изменений в программу. У документа или списка могут быть также внешние печатные формы.

Печатные формы в виде табличного документа можно сохранить в папку на компьютере или отправить по почте как вложения в любом из популярных форматов, включая документы Microsoft Word, OpenOffice.org Writer, PDF/A, HTML, Microsoft Excel, в формате табличного документа 1С:Предприятие MXL). При этом не требуется, чтобы эти программы были установлены на компьютере.
52. FatPanzer 15 30.10.20 18:40 Сейчас в теме
(50) Работает как обычный разбор XML и поиск областей, области в Worde надо размечать, как и в табличном документе...

А я тут пытаюсь уйти от разметки и прийти к полностью динамическому формированию, включая допвозможности, которых в жестком размеченном шаблоне не добиться...
https://infostart.ru/public/1293794/
Пока полет нормальный.
53. Ivon 662 30.10.20 19:50 Сейчас в теме
(49) Посмотрел. Мне не подходит. У меня самописная конфа, которая у некоторых работает на версии ниже 8.3.10. Плюс к этому туда надо еще и интегрировать БСП.
54. FatPanzer 15 30.10.20 19:55 Сейчас в теме
(53) На самом деле БСП там сбоку припека - только для управления автоматическими подключаемыми командами печати. А так-то там есть и API по которому можно передав свои параметры своим кодом получить итоговые двоичные данные вордовского файла. То есть можно легко свой клиентско-командный обвес нарисовать рядом на это ядро.
55. matashin 10.11.20 20:52 Сейчас в теме
ЗаполнитьШаблоны работает неправильно, если в 1 строке несколько параметров и при вставке значения строка сильно увеличивается в размере, Цикл то не в курсе, что длина строки изменилась.
56. matashin 10.11.20 21:44 Сейчас в теме
Не меняя направления обхода поправил ошибку, не работает обработка шаблона, если параметры идут один за другим и при вставке первых строка становится значительно длиннее исходного значения (цикл обхода кончается раньше, чем строка, заменил цикл Для на цикл Пока)

			
ТекстКОбработке = РезультатСтрока.Текст;
			
			НачатьСНачала = Ложь;
			СчП = 1;
			Пока СчП <= СтрДлина(ТекстКОбработке) Цикл
					
				Если Сред(ТекстКОбработке,СчП,1) =  ПараметрыЗаполнения.РазделительЛевый Тогда
					НомерСимволаНачало = СчП;
				КонецЕсли;
				Если Сред(ТекстКОбработке,СчП,1) =  ПараметрыЗаполнения.РазделительПравый Тогда
					
					ШаблонКЗамене = Сред(ТекстКОбработке,НомерСимволаНачало,СчП-НомерСимволаНачало+1);
					ШаблонКПоиску = Сред(ТекстКОбработке,НомерСимволаНачало+1,СчП-НомерСимволаНачало-1);
					
					МассивСтрок = ШаблоныКЗамене.НайтиСтроки(Новый Структура("ИмяПараметраВWord",ШаблонКПоиску));
					
					Если МассивСтрок.Количество() Тогда
						
						ТекстРезультат = МассивСтрок[0].Результат;
						Если ТипЗнч(МассивСтрок[0].Результат) = Тип("Массив") Тогда
							Если ФлСтрокаТаблицы И (МассивСтрок[0].Результат.Количество()>1) Тогда
								
								// Первую строку заполняем как обычный строковый результат.
								ТекстРезультат = МассивСтрок[0].Результат[0];
								
								// Остальные заносим в ТЗ к заполнению.
								Для СчСтрок = 2 по МассивСтрок[0].Результат.Количество() Цикл
									Если ТаблицаСтрокКДобавлению.Количество() < СчСтрок-1 Тогда
										ТаблицаСтрокКДобавлению.Добавить();
									КонецЕсли;
									ТаблицаСтрокКДобавлению[СчСтрок - 2]["Колонка"+КолВоКолонокВСтроке] = МассивСтрок[0].Результат[СчСтрок -1];
								КонецЦикла;
								
							Иначе
								ТекстРезультат ="";
								
								Для Каждого ЭлементМассива из МассивСтрок[0].Результат Цикл
									ТекстРезультат = ТекстРезультат + ?(ТекстРезультат ="","","; ")+ ЭлементМассива;
								КонецЦикла;
								
							КонецЕсли;
						КонецЕсли;
						
						ТекстКОбработке = СтрЗаменить(ТекстКОбработке,ШаблонКЗамене,ТекстРезультат);
					Иначе
						
						Сообщить("Параметр:" + ШаблонКЗамене+"  не указан в настройке.");
						ТекстКОбработке = СтрЗаменить(ТекстКОбработке,ШаблонКЗамене,"");
						
					КонецЕсли;
					
					Если НомерСимволаНачало <> 0 Тогда
						СчП = НомерСимволаНачало;
						НачатьСНачала = Истина;
						НомерСимволаНачало = 0;
					КонецЕсли;
					
				КонецЕсли;
				
				Если НачатьСНачала Тогда
					НачатьСНачала = Ложь;
				Иначе	
					СчП = СчП + 1;
				КонецЕсли; 
				
			КонецЦикла;
Показать
59. zannv 66 23.01.21 23:33 Сейчас в теме
Есть ли решение для случая, когда параметр - это картинка?
60. artms 247 11.02.21 15:47 Сейчас в теме
(59) В случае когда необходимо вставить картинку можно сделать заготовку с картинкой, имена идентичные, вставляются копированием. У меня уже реализовано. Но пока не делал обновление.
61. Алексей777 70 28.04.21 15:38 Сейчас в теме
Приветствую, Михаил. Интересно, в БСП АПИ по работе с данной серией формата (Office Open XML) менее универсальный и охватывающий возможности редактирования, чем в Вашем решении? Или Ваше решение превосходит в функциональности и возможностях АПИ БСП (текущих версий)?
62. Алексей777 70 28.04.21 15:39 Сейчас в теме
В, частности, вставки картинки, например, :).
63. Алексей777 70 28.04.21 18:22 Сейчас в теме
Посмотрел АПИ БСП и вывел на его основе под свои потребности печатные формы .docx. Тоже, отлично у 1С написано: https://its.1c.ru/db/bsp314doc - Глава 4. - Печать.
64. Алексей777 70 28.04.21 18:30 Сейчас в теме
Первый раз прочитал комменты по диагонали :). Сейчас, перечитал и увидел, что выше Ребята уже писали про ф-л из БСП.
65. Алексей777 70 28.04.21 18:31 Сейчас в теме
Всё равно, Автору - РЕСПЕКТ и Спасибо, за труд!
Оставьте свое сообщение

См. также

Универсальный редактор данных (УРД) Промо

Инструментарий разработчика Инструменты администратора БД v8 Абонемент ($m)

Универсальный редактор данных (УРД) - это лучший инструмент в своем классе, который позволяет редактировать реквизиты и движения объектов

1 стартмани

27.08.2021    6298    129    Adeptus    51    

Конвертация данных 3 расширение: Редактор кода.

Инструментарий разработчика Адаптация типовых решений v8 КД Россия Абонемент ($m)

Расширение для конфигурации “Конвертация данных 3.0” добавляет на все формы, где используется код языка 1С, консоль кода для управляемых форм. В результате работать с кодом в пользовательском режиме становится намного удобнее - появляется привычная расцветка кода, а также контекстная подсказка.

1 стартмани

08.09.2020    12296    34    Viktor_Ermakov    34    

А1Э - альтернативная стандартная библиотека для 1С

Инструментарий разработчика v8 Абонемент ($m)

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

14.08.2020    14221    0    Enigma    47    

Печать дополнительного соглашения к трудовому договору из шаблона Word на сервере без использования MS Office (ЗУП 3.1)

Печатные формы документов ЗУП3.x Россия БУ УУ Абонемент ($m)

Внешняя печатная форма для документа Кадровый перевод позволяет печатать дополнительное соглашение к трудовому договору при изменении оклада сотрудника в формате Microsoft Word. Создание(заполнение) документа Word осуществляется на сервере по шаблону Word без использования MS Office.

3 стартмани

03.08.2020    3254    9    Spektr    0    

Faster - многофункциональный ускоритель работы программиста 1С и других языков программирования Промо

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Программа Faster 9.4 позволяет ускорить процесс работы программиста (работает в любом текстовом редакторе). Подсказка при вводе текста на основе ранее введенного текста и настроенных шаблонов. Программа Faster позволяет делится кодом с другими программистами в два клика или передать ссылку через QR Код. Исправление введенных фраз двойным Shift (с помощью speller.yandex). Переводчик текста. Переворачивает текст случайно набранный на другой раскладке. Полезная утилита для тех, кто печатает много однотипного текста, кодирует в среде Windows на разных языках программирования. Через некоторое время работы с программой у вас соберется своя база часто используемых словосочетаний и кусков кода. Настройка любых шорткатов под себя с помощью скриптов. Никаких установок и лицензий, все бесплатно.

1 стартмани

24.05.2012    85329    967    moolex    157    

Групповая печать документов Word

Управление персоналом (HRM) Пакетная печать Печатные формы документов v8 v8::СПР ЗКГУ3.0 Россия Госбюджет Абонемент ($m)

Групповая печать документов Word по сотрудникам.

1 стартмани

21.11.2019    4222    7    allexx    0    

Должно быть NULL в регистре бухгалтерии Хозрасчетный

Тестирование и исправление Инструментарий разработчика v8 v8::БУ 1cv8.cf БУ Абонемент ($m)

Обработка проверяет наличие и решает проблему с ошибкой развернутого сальдо в Оборотно-сальдовой ведомости (регистр бухгалтерии Хозрасчетный) из-за ошибки Универсального редактора реквизитов или кода программиста, устанавливающего пустые ссылки в значениях Валюты, Подразделения, Направления деятельности не равными NULL. И пересчёт итогов тут точно не поможет...

2 стартмани

21.10.2019    18982    75    sapervodichka    33    

Конвейер проверки качества кода

Инструментарий разработчика Математика и алгоритмы Jenkins SonarQube Практика программирования v8 1cv8.cf Абонемент ($m)

Jenkinsfile для выполнения проверки качества кода. Собирает информацию с АПК, EDT и BSL-LS. Сопоставляет ошибки с гит-репозиторием, выгруженным ГитКонвертором. Отправляет в Сонар.

3 стартмани

04.09.2019    38661    27    Stepa86    46    

CF & SQL : конструктор прямых запросов к БД 1С Промо

Инструментарий разработчика Администрирование СУБД v8 1cv8.cf Россия Абонемент ($m)

Программа для чтения и анализа внутренней структуры данных 1С V8.х, Содержит конструктор прямых SQL запросов, позволяет обрабатывать и редактировать тексты SQL-запросов, выполнять прямые запросы к базе данных 1С и обрабатывать полученные результаты.

1 стартмани

02.10.2019    31252    300    dmitrydemenew    63    

Модель объекта

Инструментарий разработчика v8 Абонемент ($m)

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    17056    1    vadim1980    5    

Переводим рутину ручного тестирования 1C на рельсы Jenkins-а и ADD

Инструментарий разработчика Jenkins v8 Абонемент ($m)

Вы все еще тестируете свои конфигурации 1С вручную? Да вы просто тратите жизнь впустую! В данном туториале попробуем скрестить ADD и jenkins для автоматического запуска тестов.

1 стартмани

03.06.2019    38050    9    ripreal1    92    

Универсальный HTTP-сервис на платформе 1С, аля HTTP-сервер с примером

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

13.05.2019    39353    159    Diversus    44    

Установка предопределенных элементов: просмотр, исправление и поиск ошибок (задвоенных и отсутствующих) Промо

Инструментарий разработчика Универсальные обработки v8 1cv8.cf Абонемент ($m)

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

2 стартмани

06.10.2014    170917    2772    ekaruk    170    

Немного о графических файлах. Сжатие. Распознавание текста

Инструментарий разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

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

1 стартмани

06.05.2019    10367    12    tusv    6    

Расширение "Быстрая проверка кода" для конфигурации 1С:Автоматизированная проверка конфигураций

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Расширение для конфигурации "1С:Автоматизированная проверка конфигураций", позволяющее проверять произвольный код.

1 стартмани

26.03.2019    26680    67    Bazil    34    

Настройка отладки на сервере 1С

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка для настройки отладки на сервере, включение отладки COM-соединений и отладки Web-сервисов.

1 стартмани

26.03.2019    38206    166    frkbvfnjh    44    

[Расширение] Контроль отрицательных остатков по регистру бухгалтерии при проведении Промо

Универсальные функции Инструментарий разработчика Учет ТМЦ Учет ТМЦ v8 1cv8.cf Россия БУ Абонемент ($m)

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

1 стартмани

17.08.2015    55430    171    ekaruk    33    

Методика оптимизации программного кода 1С: проведение документов

Обработка документов HighLoad оптимизация Инструментарий разработчика v8 v8::УФ Абонемент ($m)

Описание простого метода анализа производительности программного кода 1С, способов его оптимизации и оценки результатов в виде числовых показателей прироста производительности. Не требует сторонних программных продуктов, используются только типовые возможности платформ 1С. Методика проверена на линейке платформ начиная с 1С:Предприятие 8.2 (обычные формы, управляемые формы). Позволяет ускорить проведение проблемных документов в 3 и более раз, провести проверку корректности формирования проводок оптимизированным кодом и подтвердить результаты оптимизации реальными замерами производительности в режиме предприятия. К публикации приложены демонстрационные базы для режимов обычного и управляемого приложения на платформе 1С:Предприятие 8.3 (8.3.9.2033).

1 стартмани

19.03.2019    32328    21    dmitrydemenew    85    

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

Инструкции пользователю Инструментарий разработчика v8 v8::УФ Россия Абонемент ($m)

Прототип дружелюбного и эффективного инструмента для написания пользовательских экспресс-инструкций. Задействована штатная утилита Windows, о существовании которой многие не знают и которая умеет делать огромную работу по логированию действий и снятию скриншотов на всех ПК с Windows (начиная с версии Win7). "Инструктор" не требует никакой установки и дополнительных библиотек! Это означает, что инструмент будет работать и на домашнем ПК и на "чужом ноутбуке" и на терминальном win-сервере у заказчика, где ваши права сильно ограничены. Вы просто подключаете легкую файловую базу 1С и получаете инструмент по снятию скриншотов с интересной функциональностью...

1 стартмани

15.02.2019    19160    52    ROM_NN    11    

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь новая версия - Simple UI (обновлено 14.11.2019)

Инструментарий разработчика Сканер штрих-кода Терминал сбора данных Мобильная разработка Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ Оптовая торговля Производство готовой продукции (работ, услуг) Розничная торговля Учет ОС и НМА Учет ТМЦ v8 v8::Mobile БУ УУ Абонемент ($m)

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    63152    271    informa1555    239    

[x1c.ru] 1CDBin: Работа с файлами *.1CD на низком уровне средствами языка 1С с возможностью чтения таблиц (поддерживается формат 8.3.8.0) Промо

Тестирование и исправление Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

Обработка позволяет просматривать файловые базы 1CD на низком уровне средствами встроенного языка. Реализована часть функциональности Tool_1CD, но на языке 1С Предприятия. Показываются таблицы, параметры таблиц, поля таблиц, записи таблиц, значения полей BLOB, есть 16-ричный просмотр страниц базы и консоль кода. Можно использовать для изучения структуры файлов 1CD, просмотра баз 1CD для выявления повреждений, создания своих обработок для выгрузки данных без открытия исследуемой базы в 1С:Предприятии.

1 стартмани

07.10.2014    63741    398    GusevNA    78    

Печать трудового договора, дополнительного соглашения к трудовому договору из шаблона Word, 1С: ЗУП 3

Печатные формы документов Управление персоналом (HRM) Управление персоналом (HRM) v8 v8::СПР ЗУП3.x БУ Абонемент ($m)

Внешняя печатная форма трудового договора для документа 1С ЗУП 3 "ПриемНаРаботу" формирующегося на основе шаблона Word. (протестировано на Зарплата и управление персоналом, редакция 3.1 (3.1.8.112). Работает на веб-клиенте. 26-05-2019 Добавлена внешняя печатная форма печати дополнительного соглашения к трудовому договору для документа "КадровыйПеревод" !!!!

1 стартмани

12.11.2018    23773    225    KRIHA    42    

Рисуем диаграммы в metadata.js

Инструментарий разработчика Работа с интерфейсом v8 v8::СКД 1cv8.cf Абонемент ($m)

Не одной же литературой заниматься?

1 стартмани

20.09.2018    22719    5    1c-intelligence    77    

Пользовательское определение языка 1С для Notepad++ и пример использования списка функций для навигации под свои нужды

Инструментарий разработчика v8 Абонемент ($m)

Позволяет редактировать bsl-модули (или просто текст из буфера обмена, как на скриншоте) с традиционной для 1С подсветкой синтаксиса. Рисует список функций слева в 3-х вариантах: 1. Просто список функций 2. Список функций с группировкой по областям 3. Список вызовов 4. Язык запросов

1 стартмани

10.09.2018    16905    60    albert.goncharov    36    

Мастер печатных форм v 3.3 (+English version) Промо

Универсальные печатные формы v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m)

Создание печатных форм "с нуля" за несколько минут. Моментальная отладка. Не требует знания встроенного языка 1С. Работает в толстом, тонком и вэб-клиентах.

1 стартмани

07.03.2014    99593    1209    kser87    225    

HTTP Сервисы: Путь к своему сервису. Часть 3

Инструментарий разработчика Практика программирования v8 1cv8.cf Абонемент ($m)

Продолжение статьи «HTTP Сервисы: Путь к своему сервису. Часть 2». В предыдущих частях мы использовали только Get, в этой части поговорим о других методах и длительных операциях.

1 стартмани

27.08.2018    56610    75    dsdred    17    

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    37626    31    informa1555    30    

Тестирование: Просмотр результатов тестов в предприятии 1С – Allure Skin

Инструментарий разработчика Тестирование и исправление v8 1cv8.cf Абонемент ($m)

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

1 стартмани

10.05.2018    26086    6    ivanov660    18    

Разбираемся со структурой правил конвертации данных Промо

Инструментарий разработчика v8 КД Абонемент ($m)

При переносе данных между различающимися данными частенько приходится смотреть в правила. И часто, чтобы выяснить, к примеру, каким документом формируются остатки по конкретному ПВД, нужно заглядывать в него и искать, какое ПКО в нем вызывается. А может вызываться и алгоритм, в котором вызывается ПКО ;-) А если правил много? Чтобы не мучить себя утомительными поисками, предлагаю воспользоваться этой обработкой.

1 стартмани

14.10.2011    26659    163    Meta    17    

Регистры правил [Расширение]

Инструментарий разработчика Информационная безопасность v8 v8::Права УТ11 Абонемент ($m)

Регистры правил - права доступа, запрет редактирования, автоподстановка реквизитов и т.д.

10 стартмани

15.03.2018    23670    30    33lab    5    

Сервер-клиентский вызов

Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

16.02.2018    15876    23    ВикторП    17    

V8Unpack4rs: Rust, реализация v8unpack [Экспериментальный]

Инструментарий разработчика v8 1cv8.cf Россия Абонемент ($m)

Альтернативная реализация распаковщика/запаковщика* файлов платформы 1С:Предприятие 8.x форматов *.cf (конфигурация), *.epf (обработка) и *.erf (отчет) на Rust. Новая версия поддерживает распаковку и упаковкуфайлов платформы. Для распаковки применен параллельный алгоритм. Если хотите сравнить на Ваших данных попробуйте команды: --parse - для параллельной распаковки; -s --parse - для однопоточной распаковки.

1 стартмани

03.02.2018    19579    31    TIS_08    67    

Интерфейс сопоставления объектов для обмена (для типового регистра СоответствиеОбъектовДляОбмена) Промо

Инструментарий разработчика Универсальные обработки Перенос данных из 1C8 в 1C8 v8 КА1 БП2.0 ЗУП2.5 УТ10 УПП1 Абонемент ($m)

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

4 стартмани

11.11.2015    47863    114    catsam    8    

Тестирование интерфейса в обычном приложении 8.2 при помощи SikuliX

Инструментарий разработчика Работа с интерфейсом v8 1cv8.cf Абонемент ($m)

Как же не хватает клиента тестирования на платформе 8.2. Не кликнешь на кнопку, не выберешь из списка, не проверишь видит ли надпись пользователь. Воспользуемся внешним инструментом SikuliX, который позволит нам протестировать функционал форм. Данный инструмент легко встраивается в линию сборки и может "дружить" с уже известным многим Open-source продуктами.

1 стартмани

03.01.2018    36716    5    kraynev-navi    42    

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

Универсальные печатные формы v8 УТ11 Россия Абонемент ($m)

Простой вывод табличного документа из модуля формы внешней обработки, в общую форму "Печать документов", с использованием БСП. Проверялось на версии БСП 2.2.5.30 в конфигурации УТ 11.1.

1 стартмани

08.12.2017    40018    17    dmitry1975    27    

Печатная форма, сделанная как расширение конфигурации для БП 3.0. Новые возможности БСП

Универсальные печатные формы Практика программирования v8 БП3.0 Абонемент ($m)

Печатные формы на внешних обработках скоро канут в лету. На смену им приходят ПФ, реализованные в виде расширений конфигурации. Не нашел на сайте примеров таких расширений. Привожу пример подобного расширения для БП 3.0.

1 стартмани

06.12.2017    34139    60    kwazi    6    

Программное формирование форматированной строки в стиле html+inline CSS

Работа с интерфейсом Инструментарий разработчика v8 1cv8.cf Абонемент ($m)

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

1 стартмани

18.11.2017    44076    46    bonv    13    

Макет в СКД - пример всех возможных типовых вариантов

Инструментарий разработчика Практика программирования v8 v8::СКД 1cv8.cf Абонемент ($m)

Макет СКД: наглядное представление того, что, как и куда выводится при типовых настройках.

1 стартмани

09.11.2017    28349    81    freelancer    4    

Вывод части текста жирным в табличном документе

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Иногда бывает необходимо выделить часть текста в ячейке табличного документа жирным шрифтом, например ФИО или контрагента, но стандартными методами 1С этого не поддерживают. Весть текст в ячейке содержит единое оформление. Может, когда-нибудь форматированная строка станет доступна и для табличного документа... Ну, а пока приходится делать "костыли" для реализации данного функционала.

1 стартмани

27.09.2017    41675    59    Bienko    26    

Тестирование: пример из семи шагов создания Unit-теста для платформы 1С

Инструментарий разработчика v8 ERP2 УТ11 Абонемент ($m)

В этой статье мы расскажем, как создать Unit-тест. Опишем как это сделать с использованием Фреймворка xUnitFor1C. Рассмотрим пример максимально приближенный к боевому, покажем процесс отладки теста, поделимся советами и приложим несколько обработок-примеров. Вы сможете убедиться, что создание тестов на самом деле это относительно быстрый и простой процесс.

1 стартмани

29.08.2017    38800    22    ivanov660    46    

Редактор встроенного языка на управляемой форме

Инструментарий разработчика v8 v8::УФ 1cv8.cf Россия Абонемент ($m)

Вариант решения проблемы редактирования текста (раскрашивание текста) на управляемой форме так же, как и во встроенном редакторе кода 1С.

1 стартмани

31.07.2017    22134    101    Pistolierro    23    

Трансформатор 1С - SQL

Инструментарий разработчика v8 v8::УФ 1cv8.cf Абонемент ($m)

Обработка для представления SQL запросов в терминах 1С, с возможностью захвата SQL запросов трассировкой.  Поддерживается также форматирование текста запроса через интернет сервис. Работает в управляемых и обычных формах, в том числе на веб-клиенте.

1 стартмани

28.06.2017    43194    395    Synoecium    49    

OneStyle. Улучшенное форматирование кода в конфигураторе

Инструментарий разработчика v8 Абонемент ($m)

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

1 стартмани

19.06.2017    29469    24    Stepa86    46    

"Конвертация данных" + Git. Решение проблемы различий в файлах

Инструментарий разработчика Обмен через XML v8 КД Абонемент ($m)

Как известно, типовая конфигурация «Конвертация данных» обладает одним недостатком, мешающим работать с ней в Git-е. Если выгруженные из нее правила обмена загрузить в другую КД, а потом снова выгрузить, то полученные два файла будут очень сильно отличаться друг от друга, и при сравнении (diff) доработок будет невозможно провести код-ревью, равно как найти сами изменения, которые закоммитил разработчик.

1 стартмани

08.06.2017    32071    44    stas_ganiev    13    

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

Инструментарий разработчика Универсальные функции v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

28.05.2017    31236    224    Bassgood    11    

Набор подсистем "Умные таблицы"

Инструментарий разработчика v8 Беларусь Россия Казахстан Абонемент ($m)

Данный набор подсистем – прикладная библиотека, призванная помочь программисту 1С быстрее решать ряд типовых задач бизнес-логики, таких как: ведение статусов объектов, отправка почтовых сообщений в определенное время, ведение произвольных таблиц с возможностью редактирования, сохранения и группировки, ориентированные на расчет бюджетных таблиц (план продаж, ретробонусы B2C, проценты по договорам B2B и договорные условия по КАМ), расчет коммерческой политики для бюджетных таблиц, исполнение произвольных алгоритмов с хранением кода в информационной базе, определение рабочих баз, хранение файлов во внешних СУБД (Postgre SQL, MS SQL и MongoDB) и выполнение произвольного кода после изменений ссылочного объекта вне транзакции изменения.

1 стартмани

22.05.2017    38289    105    Silenser    34    

Распознавание лиц в 1С - забавная штука

Инструментарий разработчика Практика программирования v8 Абонемент ($m)

Распознавание лиц в 1С на основе OpenFace

1 стартмани

11.04.2017    17867    49    nano1c    34