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

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

Разработка - Печать - Универсальные печатные формы

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
91
.epf 34,35Kb 91 Скачать
Версия 1.0.1 Шаблон в Word. Без использования MS Office. Предусмотрен вывод таблиц

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

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

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

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

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

А в остальном - все ок.
Могу прислать разумную рублевую благодарность после сдачи своего проекта (стукни в личку).
Alien_job; jONES1979; +2 Ответить
Остальные комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Поручик 4471 04.10.17 23:49 Сейчас в теме
В конфигурации, разработанной нашей конторой по заказу одного госучреждения, прямое потрошение парсинг шаблонов Word для генерации договоров и прочего барахла работает с 2013 года. Только механизм вставки таблиц там довольно слабый. Скорее его нет, чем есть.
2. IsiKosta 740 07.10.17 07:17 Сейчас в теме
Спасибо! Наверняка пригодится для моей публикации https://infostart.ru/public/595984/
3. sytkosa 20.11.17 03:32 Сейчас в теме
С макетами сформированными в формате docx отличным от 2010 office будет работать? Например в макете созданным и сохраненным в 2016 word?
7. artms 228 27.09.18 09:04 Сейчас в теме +10 $m
4. Dimasik2007 416 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 228 27.09.18 09:08 Сейчас в теме
(6) В Word пробел может записываться в XML специальным тегом (не всегда) . В некоторых ситуациях такое возникало, ошибку исправил, но пока не опубликовал решение в виду низкой популярности статьи. Проблема решается в шаблоне удалением строки и добавлением новой или копированием такой, где проблема не возникала.
28. artms 228 26.12.19 09:07 Сейчас в теме
20. artms 228 05.08.19 17:38 Сейчас в теме
9. KRIHA 85 12.11.18 11:05 Сейчас в теме
Спасибо вам большое, гражданин, за проделанную работу. Считаю ваше решение красивым, до сих пор в восторге от волшебства:

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

Всех благ!
P.S.
Использовал в https://infostart.ru/public/937082/
10. allexx 37 24.11.18 16:55 Сейчас в теме
Все хорошо работает. Одна только проблема - это ориентация Ландшафт. На последующих страницах можно вставлять разрывы, а вот как первую страницу заставить быть ландшафтной? Для себя выкрутился с помощью MSWord.Application.Selection.PageSetup.Orientation = 1, но это не совсем правильно. Остальные в портрете все делают что ли?
11. artms 228 21.12.18 15:53 Сейчас в теме
(10) Тестировал в ландшафте, проблем не возникло. Однако возможно рассматривается случай совмещения различных ориентации в одном документе, такой случай не тестировал.
12. allexx 37 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 228 18.01.19 08:52 Сейчас в теме
(12) Нужны примеры, для исправления, но рейтинг разработки низкий нет смысла поддерживать.
14. user864530 05.02.19 12:25 Сейчас в теме
Вопрос? Как обработка работает с нижним и верхним колонтитулом и вставка разрывы страниц для изменения ориентации страницы в документе.
15. andrewbc 290 22.03.19 15:55 Сейчас в теме
Дорогой мой человек, спасибо огромное!

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

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

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


вы имеете ввиду, что в исходном шаблоне *.docx текст типа "Оплата заказ не позднее [ДатаПолученияДоговора]" может быть раскидан частями по нескольким узлам XML в зависимости от того, как пользовтель оформлял шаблон?
30. artms 228 29.01.20 12:44 Сейчас в теме
(29) Не только. В Word есть проверка на грамматику и часть слова может быть выделена в отдельный блок, самим Word(ом).
25. o.nikolaev 203 19.11.19 18:41 Сейчас в теме
Подскажите, а если надо выполнять подстановку в колонтитулах, то аналогичным образом надо вначале разбирать xml в таблицу значений, а потом собирать?
26. artms 228 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 203 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 228 15.05.20 17:12 Сейчас в теме
(31) Да все верно. "Модуль можете использовать для коммерческого использования, однако прошу не удалять ссылку на мои реквизиты."
33. archt 9 15.05.20 21:28 Сейчас в теме
34. suepifanov 418 07.09.20 13:49 Сейчас в теме
Подскажите пожалуйста - у меня в строке таблице в одной ячейке нужно использовать 2 параметра, например <МассивНоменклаутра> <МассивПроизводитель>. В таком случае первая строка выводится корректно, а вот дальше выводится только последний параметр <МассивПроизводитель>.
Это баг, или использование таких конструкций и не предполагалось?
35. artms 228 10.09.20 11:10 Сейчас в теме
(34) Для вывода колонки таблицы нужен массив с готовыми значениями. Вам следует подготовить одну переменную массив с собранными значениями или выводить только одно значение, которое будет выведено только в первой строке тогда там может быть и две переменные.
36. Ivon 660 28.10.20 19:05 Сейчас в теме
Спасибо, хорошая обработка. В процессе использования нашел некоторые моменты:
1) самый основной - нельзя передать разрыв строки.Символы.ПС не работает, Символ(11) выдает ошибку XML.Так же пробовал другие варианты - рабочего не нашел.
2) иногда параметр разбивается на 3 части в разных тегах: скобки отдельно, имя параметра внутри скобок отдельно. В результате такой параметр в шаблоне не определяется и не заполняется, хотя с этим и можно бороться разными методами
38. Ivon 660 29.10.20 15:23 Сейчас в теме
(36) Запилил разрыв строки по Символы.ПС.
Ваш код в функции ЗаполнитьШаблоны
			// Добавим сведенья для вставки параграфов вместо символов перевода строки.
			МассивСПереводамиСтрок = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(ТекстКОбработке,Символы.ПС);
			Если МассивСПереводамиСтрок.Количество() Тогда
				РезультатСтрока.Текст = МассивСПереводамиСтрок[0];
			Иначе
				РезультатСтрока.Текст = ТекстКОбработке;
			КонецЕсли;
			Для СчП = 1 по МассивСПереводамиСтрок.Количество() -1  Цикл
				ПараграфыКДобавлению.Добавить(МассивСПереводамиСтрок[СчП]);
			КонецЦикла;
Показать

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

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

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

нужно заменить на
    Если не _УдалятьПустые Тогда
        _т = СтрЗаменить(_т, Символы.ПС, СтрокаИДПустыхСтрок + Символы.ПС + СтрокаИДПустыхСтрок);
    КонецЕсли;
41. Ivon 660 30.10.20 13:59 Сейчас в теме
(38) В общем, там еще в одном месте косяк с функцией.
Вот окончательный код (я надеюсь)
Функция РазобратьСтроку(_Строка, _Разделитель, _УдалятьПустые = Истина, _Массив = Ложь) Экспорт
	Если _Массив Тогда
		Результат = Новый Массив;
	Иначе
		Результат = Новый СписокЗначений;
	КонецЕсли;
	Если _Разделитель = Символы.ПС Тогда
		_т = _Строка;
	Иначе
		_т = СтрЗаменить(_Строка, _Разделитель, Символы.ПС);
	КонецЕсли;
	СтрокаИДПустыхСтрок = СтрЗаменить(Строка(Новый УникальныйИдентификатор()) + Строка(Новый УникальныйИдентификатор()), "-", "");
	Если не _УдалятьПустые Тогда
		_т = СтрЗаменить(_т, Символы.ПС, СтрокаИДПустыхСтрок + Символы.ПС + СтрокаИДПустыхСтрок);
	КонецЕсли;
	Для Строк = 1 по СтрЧислоСтрок(_т) Цикл
		СтрЗначение = СтрЗаменить(СтрПолучитьСтроку(_т, Строк), СтрокаИДПустыхСтрок, "");
		Если СтрДлина(СтрЗначение) = 0 Тогда
			Если не _УдалятьПустые Тогда
				Результат.Добавить(СтрЗначение);
			КонецЕсли;
		Иначе
			Результат.Добавить(СтрЗначение);
		КонецЕсли;
	КонецЦикла;
	
	Возврат Результат;
КонецФункции
Показать
37. Ivon 660 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 660 30.10.20 14:00 Сейчас в теме
(40) Вы про обычные печатные формы на основе табличного документа?
44. ylyas 25 30.10.20 17:16 Сейчас в теме
(42)
я говорю про вывод вордовского документа параметрами подстановки без использования COM-а.
идет разбор document.xml и других вспомогательных файлов
Все уже написано, господа!!
43. suepifanov 418 30.10.20 14:21 Сейчас в теме
(40) в типовой бсп был другой способ, не разбор хмл. В свежей версии что-то поменялось?
45. ylyas 25 30.10.20 17:18 Сейчас в теме
(43)
я сам был не реально удивлен, когда столкнулся с этим вопросом и нашел такой интересный ответ.
Они даже расширение файла сами определяют по сигнатурам двоичных данных!!!
Кто то в 1с пришел прям из системных языков программирования как будто ))
57. user1434357 1 28.12.20 20:56 Сейчас в теме
(47)
(45)
(44)

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

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

А я тут пытаюсь уйти от разметки и прийти к полностью динамическому формированию, включая допвозможности, которых в жестком размеченном шаблоне не добиться...
https://infostart.ru/public/1293794/
Пока полет нормальный.
53. Ivon 660 30.10.20 19:50 Сейчас в теме
(49) Посмотрел. Мне не подходит. У меня самописная конфа, которая у некоторых работает на версии ниже 8.3.10. Плюс к этому туда надо еще и интегрировать БСП.
54. FatPanzer 11 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 55 23.01.21 23:33 Сейчас в теме
Есть ли решение для случая, когда параметр - это картинка?
60. artms 228 11.02.21 15:47 Сейчас в теме
(59) В случае когда необходимо вставить картинку можно сделать заготовку с картинкой, имена идентичные, вставляются копированием. У меня уже реализовано. Но пока не делал обновление.
Оставьте свое сообщение

См. также

Подсистема "Показатели объектов" Промо

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

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

2 стартмани

06.03.2021    1146    0    pila86    8    

Работа с Ворд через СОМ-Объект

Практика программирования v8 Бесплатно (free)

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

15.02.2021    1251    Sindbad_M    22    

Генератор кода схемы компоновки данных (СКД)

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

Формирование кода для программного создания схемы компоновки данных (СКД)

1 стартмани

04.02.2021    3364    37    Sergspectr    28    

Отладчик запроса 1С 8.3 (управляемые формы), бета-версия

Консоль запросов v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

28.09.2020    8394    104    DrAku1a    28    

FormCodeGenerator Программная доработка форм. Часть 2 (Режим работы "Режим сравнения форм") на примере ERP 2.5 Промо

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

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

5 стартмани

21.12.2020    3027    14    huxuxuya    11    

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

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

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

1 стартмани

08.09.2020    6708    21    Viktor_Ermakov    29    

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

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

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

14.08.2020    9390    0    Enigma    45    

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

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

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

3 стартмани

03.08.2020    1739    5    Spektr    0    

Управляемая консоль запросов, отчетов 3.8.9 (расширение, внешняя обработка) Промо

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

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

5 стартмани

14.08.2018    104390    2659    Evg-Lylyk    710    

Консоль кода для управляемых форм

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

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

1 стартмани

17.07.2020    16496    264    salexdv    243    

Консоль запросов 9000

Консоль запросов v8 v8::Запросы 1cv8.cf Абонемент ($m)

Простая и удобная консоль запросов 1С для управляемых форм 8.3, работает на любой конфигурации без ее модификации. Возможность использования как внешней обработки или в составе расширения. С перехватом любых запросов и поддержкой всех типов данных во временных таблицах. Анализ плана запроса, запроса на уровне СУБД. Обработка результата кодом.

1 стартмани

24.02.2020    15477    322    kuza2000    131    

Помощник работы с идентификаторами объектов

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

Инструмент для расширенного анализа идентификаторов объектов.

2 стартмани

24.01.2020    12445    49    YPermitin    32    

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

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

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

2 стартмани

06.10.2014    157247    2653    ekaruk    167    

Инструменты оптимизации для 1С на MS SQL Server

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

Набор базовых инструментов для поиска узких мест в работе 1С на MS SQL Server.

1 стартмани

15.12.2019    17986    220    berezdetsky    23    

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

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

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

1 стартмани

21.11.2019    2840    4    allexx    0    

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

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

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

1 стартмани

02.10.2019    22492    223    dmitrydemenew    48    

Консоль запросов с графом (Анализатор сложных запросов) Промо

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

Консоль запросов для анализа запросов с большим количеством временных таблиц и вложенных запросов. Отображает структуру взаимосвязей временных таблиц в виде графа. Позволяет быстро передвигаться по тексту запроса и получать результат выполнения подзапросов. Единственная консоль запросов, которая позволяет выводить результат выполнения вложенных запросов и любой части объединения запроса. Удобное получение данных запроса из отладчика включая временные таблицы. Текст запроса в структурированном виде (можно свернуть, развернуть текст подзапроса). И еще много другого, чего вы не найдете в других консолях запросов. Поддержка УФ и ОФ. Версия 0.9.1 от 18.10.2019 (поддержка WebKit).

10 стартмани

03.05.2017    99132    451    manuel    270    

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

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

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

3 стартмани

04.09.2019    28790    24    Stepa86    46    

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

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

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

1 стартмани

30.06.2019    13761    0    vadim1980    5    

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

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

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

1 стартмани

03.06.2019    29298    7    ripreal1    90    

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

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

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

1 стартмани

17.08.2015    49154    167    ekaruk    32    

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

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

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

1 стартмани

13.05.2019    32007    139    Diversus    42    

Групповая проверка доработок

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

Обработка для массовой проверки доработок конфигурации: Открытие форм, Печать, Формирование отчетов, Проведение документов, Запись справочников, ПВХ, ПВР. Выдает список обнаруженных ошибок. Рекомендуется применять для тестирования обновленной конфигурации, перед установкой пользователям. В коде используются универсальные методы поэтому подходит для большинства конфигураций, построенных на базе библиотеки стандартных подсистем. Проверялась на Зарплата и управление персоналом КОРП 3.1.8.216, Управление торговлей 11, 1С:ERP Управление предприятием 2.4.7.141, Бухгалтерия предприятия КОРП 3.0.68.66.

2 стартмани

05.05.2019    16813    109    sapervodichka    23    

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

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

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

1 стартмани

26.03.2019    21583    60    Bazil    34    

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

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

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

1 стартмани

24.05.2012    79944    960    moolex    147    

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

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

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

1 стартмани

26.03.2019    31051    131    frkbvfnjh    41    

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

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

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

1 стартмани

19.03.2019    26595    18    dmitrydemenew    83    

Конструктор мобильного клиента 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    49099    260    informa1555    234    

Консоль запросов + ТЗ как параметры Промо

Консоль запросов v8 1cv8.cf Украина Абонемент ($m)

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

2 стартмани

12.11.2010    38233    441    Kashemir    24    

Управление задачами в 1С - готовая подсистема с открытым кодом и широким базовым функционалом. Версия 1.0.6

Инструментарий разработчика Управление бизнес-процессами (BPM) Управление проектом v8 Абонемент ($m)

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

2 стартмани

17.12.2018    22452    116    for_sale    38    

Печать трудового договора, дополнительного соглашения к трудовому договору из шаблона 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    19600    191    KRIHA    25    

Консоль Внедренца v.3.6.2 (vnedr.cf)

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

Идея данной обработки заключается в создании простого, функционального и универсального инструментария для внедренцев и программистов 1С, который будет работать как в толстом клиенте на обычных и на управляемых формах, так и в тонком клиенте. Интерфейс и логика работы максимально идентичны у обычных форм и управляемых. Инструментарий включает в себя: Консоль кода, Консоль запросов, Консоль отчетов (СКД), Универсальную обработку объектов, Средства для работы с таблицами базы данных 1С, Редактирование регистров сведений базы, Инструмент по работе с табличными документами - загрузка данных из табличного документа.

1 стартмани

27.08.2018    23955    390    evvakra    42    

[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    56408    359    GusevNA    77    

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

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

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

1 стартмани

27.08.2018    42736    63    dsdred    17    

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

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

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

5 стартмани

09.08.2018    30419    26    informa1555    26    

Консоль HTTP-запросов с генерацией кода

Консоль запросов v8 v8::УФ 1cv8.cf Абонемент ($m)

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

1 стартмани

25.05.2018    26843    289    leongl    19    

Мастер печатных форм v 3.1 Промо

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

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

5 стартмани

07.03.2014    95111    1190    kser87    221    

Униформальная консоль запросов

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

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

1 стартмани

23.05.2018    24873    322    Synoecium    52    

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

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

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

10 стартмани

15.03.2018    19365    28    33lab    3    

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

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

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

1 стартмани

03.01.2018    31481    5    kraynev-navi    41    

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

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

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

1 стартмани

14.10.2011    23873    161    Meta    17    

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

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

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

1 стартмани

06.12.2017    28645    54    kwazi    6    

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

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

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

1 стартмани

18.11.2017    35457    40    bonv    11    

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

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

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

1 стартмани

09.11.2017    23539    77    freelancer    4    

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

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

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

1 стартмани

29.08.2017    33124    22    ivanov660    46    

"Исследователь" планировщика 1С

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

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

1 стартмани

10.08.2017    33986    140    new_user    34    

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

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

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

1 стартмани

28.06.2017    38029    364    Synoecium    49    

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

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

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

1 стартмани

19.06.2017    25094    24    Stepa86    46