Функция заполнения документа word по шаблону. Аналог функции CRM_ЗаменитьШаблонВВордеНаТекст

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

Разработка - Универсальные функции

Word заменить текст шаблон Универсальная функция CRM_ЗаменитьШаблонВВордеНаТекст

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

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

В crm это было реализована таким образом: создавался макет договора в формате doc – docx, и сохранялся на диске. Затем в коде получали этот договор, сохраняли на диске под другим именем и уже в этой копии заменялся текст на необходимый. Например, чтобы вставить в макет номер договора у нас нужно было вставить в этот макет текст вида {Номер}.  Обязанности по замене в crm выполняла функция CRM_ЗаменитьШаблонВВордеНаТекст, в которую передавался объект Word. Код этой функции зашит в ключ защиты, что и вызывало такие проблемы.

 

Предлагаю аналог функции «CRM_ЗаменитьШаблонВВордеНаТекст», выполняемый без ключа защиты

////////////////////////////////////////////////////////////////////////////////
//
// Функция ЗаменитьШаблонВВордеНаТекст
// 
// Описание:
//  Ищет, заданный текст в Word Документе. Если текст найден возвращает Истина. 
// 	Также, если передавать Параметр везде, то и выполняет замену найденного текста
// Параметры (название, тип, дифференцированное значение)
// 	Ворд - comobject Word, 
//  ТекстНайти - тип Строка, текст для поиска в документе
//  ТекстЗаменить - тип Строка, текст, на который будет заменятся ТекстНайти, 
// 	Везде - тип Булево (Если не передается, принимает значение Неопределено),
//  указывает где следует производить замену
// ОСНОВНЫЕ ПАРАМЕТРЫ ПЕРЕДАВАЕМЫЕ В ОБЪЕКТ FIND
//  УчитыватьРегистр - Тип Булево.
//  ИскатьЦелоеСлово - Тип Булево.
// 	ИспользоватьДопЗнаки - Тип Булево.
//  ИскатьКакЗвучит - Тип Булево.
// Возвращаемое значение: Истина ИЛИ Ложь	 	
Функция ЗаменитьШаблонВВордеНаТекст(Ворд, Знач ТекстНайти, ОбластьПоиска = Неопределено, Знач ТекстЗаменить = "", Везде = Неопределено, 
	УчитыватьРегистр = Ложь, ИскатьЦелоеСлово = Истина, ИспользоватьДопЗнаки = Ложь, ИскатьКакЗвучит = Ложь)
	
	//Колво раз, сколько нужно заменять текст в документе	
	Если Везде = Неопределено Тогда
		Колво = 0; //ни разу		
	ИначеЕсли Везде Тогда 
		Колво = 2;//Все 
	Иначе 
		Колво = 1;//1 раз
	КонецЕсли; 
	Если ОбластьПоиска = Неопределено Тогда
		ОбластьПоиска = Ворд.ActiveDocument.Content;		
	КонецЕсли; 
	//Если Текст больше 255 знаков, 
	//то вводим его методом печати, а не вставкой
	Если СтрДлина(ТекстЗаменить) > 255 И Колво > 0 Тогда
		ОбластьПоиска.Select();
		ОбластьПоиска	= Ворд.Selection;
		Find			= ОбластьПоиска.Find;
		Найден			= Ложь;
		Попытка
			Пока Find.Execute(ТекстНайти, УчитыватьРегистр, ИскатьЦелоеСлово, ИспользоватьДопЗнаки, ИскатьКакЗвучит) Цикл
				//Печатаем текст замены, если найден
				Ворд.Selection.TypeText(ТекстЗаменить);
				Найден = Истина;
				Если Колво = 1 Тогда
					Прервать 	
				КонецЕсли; 			
			КонецЦикла;
			Возврат Найден;
		Исключение
			Возврат Ложь;	
		КонецПопытки;
	Иначе
		Если Колво = 1 Тогда
			ОбластьПоиска.Select();
			ОбластьПоиска = Ворд.Selection;
		КонецЕсли; 
		
		Find = ОбластьПоиска.Find;
		//Убираем форматирование, чтобы оно не влияло на поиск
		Find.ClearFormatting();
		
		//Параметры объекта Find
		//1 - ТекстПоиска, тип Строка - по умолчанию "", можно использовать для поиска специальные символы:
		// "^p" - для поиска параграфов, "^t" - сиволы табуляции
		//2- УчитыватьРегистр, тип Булево - по умолчанию Ложь
		//3 - ИскатьЦелоеСлово, тип Булево - по умолчанию Истина
		//4 - ИспользоватьДопЗнаки - использует подстановочные знаки - по умолчанию Ложь
		//5 - ИскатьКакЗвучит - Ищет слова похожие по звучанию - по умолчанию Ложь
		//6 - НаправлениеВперед - Указывет направаление поиска вперед - по умолчанию Ложь
		//9 - ИскатьФорматирование - Указывает необходимо ли искать по форматированию - по умолчанию Ложь
		//10 - ТекстЗаменить - Текст для замены
		//11 - Колво - указыавет, сколько раз произоводить замену: 2 - во всем документе, 1 - только первый найденный, 0 - нигде
		Попытка
			Возврат Find.Execute(ТекстНайти,УчитыватьРегистр,ИскатьЦелоеСлово,ИспользоватьДопЗнаки, ИскатьКакЗвучит,,,,,ТекстЗаменить,Колво)
		Исключение
			Возврат Ложь;
		КонецПопытки;
	КонецЕсли;
КонецФункции

P.S. Пишите свои замечания по улучшению кода


Мои работы:

Общее

Перенос данных XML с Анализом и выборочной загрузкой.

Универсальный редактор таблиц и движения документа (LITE) (Обычная Форма)

Универсальный редактор таблиц и движения документа (PRO) (Обычная Форма)

Универсальный редактор Таблиц и Движений документов (Управляемая форма)

Запуск 1С под другим пользователем без пароля.

 

Управление торговлей 11

Установка цен в УТ11. Произвольный запрос к данным ИБ

 

ЗУП 2.5

Скрываем неиспользуемые виды расчета

Резервы отпусков в Документе "Отражение Зарплаты в Регламентированном Учете" (Оценочные Обязательства)

 

Комплексная И УПП

Форма работы с сотрудниками, как из зуп 2.5

 

6

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

Комментарии
Избранное Подписка Сортировка: Древо
1. script 206 05.06.15 01:03 Сейчас в теме
Функция CRM_ЗаменитьШаблонВВордеНаТекст(глКомпонента, Ворд, Знач ШаблонВВорде, Знач ТекстЗамены, Везде = Истина) Экспорт
Попытка
	Если Везде Тогда
		Везде = 1;
	КонецЕсли;

            НетОшибок = Истина;
            
            Selection = Ворд.ActiveDocument.Content;
            //Selection.Find.ClearFormatting();
            //Selection.Find.Replacement.ClearFormatting();
            //
            //Selection.Find.Forward = True;
            //Selection.Find.Wrap = wdFindContinue;
            //
            //Selection.Find.Format = False;
            //Selection.Find.MatchCase = False;
            //Selection.Find.MatchWholeWord = False;
            //Selection.Find.MatchWildcards = False;
            //Selection.Find.MatchSoundsLike = False;
            //Selection.Find.MatchAllWordForms = False;
            //
            //Selection.Find.Text = "";
            //Selection.Find.Replacement.Text = "";
            
            wdReplaceNone = 00000000; // не заменять
            wdReplaceOne  = 00000001; // заменять одно вхождение/по порядку
            wdReplaceAll  = 00000002; // заменить все вхождения
            
            // Начало табличной части
            Если (ШаблонВВорде = "{НачалоТаблицыОбязательныйПрефикс}") Тогда
                
                ПоискИЗамена = Selection.Find;
                ПоискИЗамена.Forward = -1;
                ПоискИЗамена.Text = ШаблонВВорде;
                ПоискИЗамена.Replacement.Text = "";
                ПоискИЗамена.Execute(, , , , , , , , , ,wdReplaceOne);
                
                Если ПоискИЗамена.Found Тогда
                    
                    Таблица = ПоискИЗамена.Parent;
                    Таблица.Select();
                    
                Иначе
                    
                    НетОшибок = Ложь;
                    
                    Если Константы.script_ВключитьРежимОтладки.Получить() Тогда
                        Сообщить(ОписаниеОшибки());
                    КонецЕсли;
                    
                КонецЕсли;
                
            Иначе
                
                Если Везде = 1 Тогда
                    
                    ПоискИЗамена = Selection.Find;
                    ПоискИЗамена.Forward = Истина;
                    ПоискИЗамена.ClearFormatting();
                    ПоискИЗамена.Replacement.ClearFormatting();	
                    
                    ПоискИЗамена.Text             = ШаблонВВорде;
                    ПоискИЗамена.Replacement.Text = ТекстЗамены;
                    ПоискИЗамена.Execute(, , , , , , , , , ,wdReplaceAll);
                    
                Иначе
                    
                    ПоискИЗамена                  = Selection.Find;
                    ПоискИЗамена.ClearFormatting();
                    ПоискИЗамена.Forward          = -1;
                    ПоискИЗамена.Wrap             = 1;
                    ПоискИЗамена.Text             = ШаблонВВорде;
                    ПоискИЗамена.Replacement.Text = ТекстЗамены;
                    ПоискИЗамена.Execute(, , , , , ,1 ,1 , , ,wdReplaceOne);
                    Если ПоискИЗамена.Found Тогда
                        
                        Таблица = ПоискИЗамена.Parent;
                        Таблица.Select();
                        
                    Иначе	
                        
                        НетОшибок = Ложь;
                        
                        Если Константы.script_ВключитьРежимОтладки.Получить() Тогда
                            Сообщить(ОписаниеОшибки());
                        КонецЕсли;
                        
                    КонецЕсли;
                КонецЕсли;
            КонецЕсли;
            
        КонецЕсли;
        // - {SCRIPT} 
		
    Исключение КонецПопытки;
	
Возврат Истина;
	
КонецФункции
Показать
karpik666; +1 Ответить
4. karpik666 2716 05.06.15 03:41 Сейчас в теме
(1) script, это откуда такое счастье? Это ваш код или это закрытый модуль? :-)
2. script 206 05.06.15 01:06 Сейчас в теме
Функция CRM_ЗаменитьШаблонВOpenOfficeНаТекст(глКомпонента, Параметры, ТегиКолонок) Экспорт
		Попытка
			Если ТегиКолонок Тогда
				
				Для Каждого Тег Из Параметры.ТаблицаТегов Цикл //заполнение строк номенклатуры и итогов по разделам
					Результат = CRM_ПолучитьРезультатВыполненияДействия(Тег.Действие, Параметры.СтрокаМассива, Параметры.Параметры);
					
					СтруктураПараметров = Новый Структура;
					СтруктураПараметров.Вставить("ОбъектOpenOffice"	, Параметры.Параметры.ОбъектВорд);
					СтруктураПараметров.Вставить("СтрокаПоиска"		, Тег.Представление);
					СтруктураПараметров.Вставить("СтрокаЗамены"		, CRM_ОбработатьСтрокуЗамены(Результат));
					
					CRM_ЗаменитьШаблонВOpenOfficeНаТекст(глКомпонента, СтруктураПараметров, Ложь);
					
				КонецЦикла;	
				
			Иначе
				
				OpenOffice = Параметры.ОбъектOpenOffice;
				Replace               = OpenOffice.CreateReplaceDescriptor();
				Replace.SearchString  = Параметры.СтрокаПоиска;
				Replace.ReplaceString = CRM_ОбработатьСтрокуЗамены(Параметры.СтрокаЗамены);
				
				OpenOffice.ReplaceAll(Replace);
				
			КонецЕсли;
			
			Возврат Истина;
			
		Исключение
			
			Сообщить(ОписаниеОшибки());
			Возврат Ложь;
			
		КонецПопытки		
	
КонецФункции

Показать
3. h00k 36 05.06.15 03:41 Сейчас в теме
(0) ОМГ, а остальные защищенные процедуры и функции не нужны?!
Всегда думал что в црм основные функции это работа с бизнес процессами и т.п., а оказывается вот оно как, замена шаблона в ворде важнее...

П.С.: Полное отключение защиты - 5 минут, производится изменением пары строк в конфигурации и его гораздо проще поддерживать чем "дописанные" процедуры. Но гораздо правильнее сначала научиться настраивать ключи защиты, так-как защита у рарус не самая "глючная" и если возникли такие сложности, то это говорит, скорее всего, о "кривой" настройке сервера...
5. karpik666 2716 05.06.15 03:47 Сейчас в теме
(3) h00k, конфигурации уже 8 лет, не обновлялась и столько же ключам, может действительно виноват сервак, но им занимался другой человек, еще был конфликт из за Ос, когда на сервер поставили Windows 2012. Про строчки знаю, которые нужно закомментировать, и бизнес процессы работают и без ключа, а вот доп функции нет, так как код зашит в ключ защиты :-(
8. h00k 36 05.06.15 05:41 Сейчас в теме
(5)
Про строчки знаю, которые нужно закомментировать,

Просто закомментировать - это не решение, это потеря основного функционала.

поводом отказаться от защиты crm это еще то, что с ней конфигурация запускается капец как долго, пока пройдут все проверки=)

На правильно настроенной системе проверка файлов защиты в 1.4 занимает пару секунд, а в 2.0 и того быстрее.
А по поводу отключения защиты, я могу вспомнить лишь один случай, когда это имело смысл - необходимо было заставить црм 1.4 работать на линукс.
6. karpik666 2716 05.06.15 03:50 Сейчас в теме
(3) h00k, большинство функций не нужны были, хотя нужно было еще штрихкод вставлять, но эту проблему решили наподобии этого кода.
7. karpik666 2716 05.06.15 04:24 Сейчас в теме
(3) h00k, поводом отказаться от защиты crm это еще то, что с ней конфигурация запускается капец как долго, пока пройдут все проверки=)
9. script 206 05.06.15 09:25 Сейчас в теме
Отключать защиту приходится при серьезной доработке црм.
Я собираюсь, начать публиковать цикл статей о том, чего так не хватает в црм 1.4, и как это реализовать. И в некоторых случаях, без обхода защищенных функций, просто не обойтись.
Оставьте свое сообщение

См. также

Полезняшки по СКД и построителям. Просто код 36

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Практика программирования Универсальные функции

Полезные процедуры и функции для работы с построителями и СКД. Просто исходник.

10.10.2019    2236    Yashazz    31       

Полезные процедуры и функции для программиста 108

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Практика программирования Универсальные функции

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

07.10.2019    5683    HostHost    21       

Отслеживание выполнения фонового задания 133

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

Запуск фонового задания из модуля внешней обработки. Отслеживание выполнения задания в виде прогресса, расположенного на форме.

17.08.2019    8072    ids79    14       

Сохранение запроса со всеми параметрами и временными таблицами 20

Статья Программист Нет файла v8 v8::УФ Россия Бесплатно (free) Универсальные функции

Функция сохранения запроса со всеми параметрами и временными таблицами в формате *.q1c для открытия в консоли запросов с диска ИТС.

13.05.2019    2381    Serge R    5       

Иерархия справочника Сверху Вниз. Получаем произвольное количество родителей "верхнего" уровня 7

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции Разработка

Иерархия справочника Сверху Вниз. Функция для получения произвольного количества родителей "верхнего" уровня. На примере справочника "Номенклатура".

28.03.2019    1993    obsfromekb    11       

Доработка проведения типовых документов в УТ 11.4, КА 2.4, ЕРП 2.4 101

Статья Программист Нет файла v8 v8::УФ ERP2 УТ11 КА2 Россия УУ Бесплатно (free) Практика программирования Универсальные функции Разработка

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

22.03.2019    8677    ids79    14       

Добавление отчетов в типовые конфигурации 1С 200

Статья Программист Нет файла v8::УФ v8::СКД 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем)

Описание различных способов добавления общих и контекстных отчетов в конфигурации 1С, построенные на базе БСП. Основные моменты и нюансы.

07.03.2019    22990    ids79    32       

Работа со строками: от простого к сложному 25

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

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

14.01.2019    7405    Evg-Lylyk    17       

Нумерация колонок субконто при выгрузке набора записей регистра бухгалтерии в таблицу значений 6

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

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

14.01.2019    2256    The Ded    3       

Универсальные функции ЗУП 3.1 / ЗКГУ 3.1, которые помогут в разработке 463

Статья Программист Нет файла v8 v8::СПР ЗКГУ3.0 ЗУП3.x БУ Зарплата Управление персоналом (HRM) Бесплатно (free) Универсальные функции

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

14.11.2018    31521    GeterX    93       

Кадровые данные сотрудников в ЗУП 3.1 в отчетах 38

Статья Программист Нет файла v8 v8::СПР ЗУП3.x Россия Управление персоналом (HRM) Бесплатно (free) Универсальные функции

Параметры используемые для получения данных сотрудников в ЗУП 3.1. Пригодится для разработки отчетов как напоминалка.

07.11.2018    12837    fromlion    12       

Добавление расшифровки в стандартные и добавленные внешние отчеты со стандартной формой отчета на СКД 72

Статья Программист Нет файла v8::УФ v8::СКД ERP2 УТ11 Россия Бесплатно (free) Универсальные функции

Описан способ добавления расшифровки отчета на СКД как встроенного в систему, так и добавленного внешнего отчета.

27.09.2018    6496    bmk74    2       

Функция НайтиФайлы() в каталоге netshare на Linux - обход ошибки работы 6

Статья Программист Нет файла v8 Linux Бесплатно (free) Практика программирования Универсальные функции

Решение проблемы применения функции НайтиФайлы() в каталоге с netshare на Linux-сервере - не работает поиск файлов по указанной маске (шаблону)

19.09.2018    3214    drmaxart    1       

Простой способ программно открыть заполненную форму нового (незаписанного) документа в тонком клиенте 15

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

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

09.06.2018    7349    Serge R    12       

Генерация временного ряда запросом 7

Статья Программист Нет файла v8 v8::Запросы 1cv8.cf Бесплатно (free) Универсальные функции

Способ генерации последовательности дат средствами языка запроса 1С.

07.05.2018    5832    dim_zal    6       

Минимализмы 3 350

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

Очередная серия "минимализмов" [http://infostart.ru/public/306536/, https://infostart.ru/public/460935/]. Также, как и в предыдущих статьях, здесь приведена подборка коротких оригинальных авторских решений некоторых задач. Ранее эти решения были разбросаны по моим комментариям к чужим публикациям.

19.02.2018    35433    ildarovich    44       

Таблица значений в Таблицу HTML - функция с возможностью настройки цвета шапки, заголовков, выравнивания и размера колонок 83

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции

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

22.12.2017    18807    rpgshnik    21       

Пример преобразования двоичных данных в строку 26

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

Доброго всем времени суток. Хочу поделиться маленьким решением маленькой проблемы. Думаю, будет интересно новичкам. Я не раз встречал на форумах вопрос: как преобразовать двоичные данные в строку? В частности, к примеру, частенько нужно получить хэш файла MD5 в текстовом виде, но как мы знаем 1С возвращает его в виде двоичных данных.

08.12.2017    12349    frkbvfnjh    19       

Функция сохранения картинок из книги Excel в каталог с определением координат на листе 8

Статья Программист Нет файла v8 Бесплатно (free) Загрузка и выгрузка в Excel Универсальные функции

Разбор файла *.xlsx как Web-архива, выгрузка изображений без потери качества, с определением положения изображений.

12.11.2017    7100    user634820_zergemoth    1       

Определяем контекст сеанса 1С программно (Тонкий/Толстый клиенты/HTTP-Сервис/Фоновое задание и т.д.) 31

Статья Программист Нет файла v8 1cv8.cf Бесплатно (free) Практика программирования Универсальные функции

Иногда возникает необходимость программно определить контекст сеанса в 1С. Скажем вам надо понять что этот сеанс запущен и используется HTTP-Сервисом и не регламентным заданием или толстым клиентом. Порывшись в интернете я нашел только два способа которые не позволяли отличить регламентное задание от HTTP-Сервиса, стандартная функция ТекущийРежимЗапуска() тоже не позволяет определить запуск HTTP-Сервиса. Но в 1С есть стандартные средства которые позволяют решить эту задачу.

08.11.2017    15344    azubar    9       

Правила округления 5

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Универсальные функции

Округление числовых значений по трём правилам математики

30.10.2017    7665    dakork    4       

#Область ВНЕШНИЕ_ВЫЗОВЫ или MVC в 1С, библиотечность и упрощение интеграции кода 43

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Математика и алгоритмы Универсальные функции

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

12.10.2017    14432    for_sale    58       

Получение даты, зная день недели и его порядок в месяце 10

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

Иногда бывает необходимость получить "Первый понедельник месяца" или "Вторую пятницу месяца". Есть несколько способов решения вопроса. Опишу один из них.

12.09.2017    8079    987ww765    10       

Разность дат 21

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

Иногда требуется получить разность дат в виде типа: 5 дней 6 месяцев 4 года. Это можно сделать с помощью запроса, получив на выходе сразу 3 нужных числа, без последующих вычислений.

11.08.2017    9710    jun-ko    24       

Простой способ преобразовать UNICODE в строку или в структуру 23

Статья Программист Нет файла v8 Россия Windows Бесплатно (free) Практика программирования Универсальные функции

Первая функция получает Строку, которая содержит строчки вида «Ключ=Значение». Вторая функция получает Структуру.

07.07.2017    7143    dimasts    5       

"Распределение в запросе" или "избавляемся от перебора" 182

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) Математика и алгоритмы Универсальные функции

Хороший перебор - это отсутствие перебора. Рассмотрим пример замены полного перебора запросом.

16.12.2016    27763    alexandersh    45       

Пример работы с шаблоном Word через ole (клиент - сервер, тонкий клиент) - установка значений и заполнение таблицы 17

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

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

09.11.2016    9985    gortrex    8       

Парсер JSON (Штатные средства 1С 8.3.6) 59

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

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

29.09.2016    46311    dour-dead    21       

Программное создание графических схем (v.2): API для ГрафическойСхемы 73

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Работа с интерфейсом Универсальные функции

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

27.09.2016    16859    serg_infostart    15       

Вычитание рабочих дней от текущей даты 7

Статья Программист Нет файла v8 Россия Бесплатно (free) Практика программирования Универсальные функции

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

08.09.2016    9584    semenich_b    7       

Используем механизмы обмена данными БСП для произвольного обмена 147

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции Внешние источники данных БСП (Библиотека стандартных подсистем)

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

23.08.2016    27638    Патриот    22       

Склонение числа прописью 25

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

Склоняет число прописью до 999999 Пример: до склонения "Не позднее 3 (Три) дней", после - "Не позднее 3 (Трех) дней"

18.08.2016    15829    maxvcb    27       

Отборы в отчётах. Нюансы работы компоновщика настроек. 132

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

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

15.08.2016    59154    Yashazz    23       

Автоматическое добавление новых реквизитов на форму (УФ) 38

Статья Программист Нет файла v8 v8::УФ Бесплатно (free) Работа с интерфейсом Универсальные функции

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

03.08.2016    16187    Патриот    23       

HOWTO: создание и отладка HTTP-сервиса в 1С:Предприятие 123

Статья Программист Нет файла v8 1cv8.cf Россия Бесплатно (free) WEB Практика программирования Универсальные функции

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

25.07.2016    39377    serg_infostart    19       

Цикл ввода данных, пример решения 41

Статья Программист Нет файла v8 Бесплатно (free) Практика программирования Универсальные функции

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

12.07.2016    11156    botokash    7       

Поиск несериализуемых значений при помещении в хранилище 12

Статья Программист Нет файла v8 Windows Бесплатно (free) Инструментарий разработчика Практика программирования Универсальные функции

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

02.03.2016    20031    balanton    2       

Универсальные функции с примерами использования 241

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

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

26.02.2016    35344    unichkin    36       

Преобразование числа в строку в запросе 1С 8.x 21

Статья Программист Нет файла v8 1cv8.cf Windows Бесплатно (free) Универсальные функции

В запросах 1С предприятие 8.x есть ограничение: нельзя преобразовывать число в строку.

23.02.2016    32908    lastcontra    19       

Изменения параметра или отбора типа Дата в форме отчета 6

Статья Программист Нет файла v8 Бесплатно (free) Универсальные функции

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

08.02.2016    9782    dj_serega    3       

Использование классов .Net в 1С для новичков 147

Статья Программист Нет файла v7.7 v8 Windows Бесплатно (free) Практика программирования Разработка внешних компонент Универсальные функции

Руководство для новичков. Написав статью http://infostart.ru/public/238584/, я понял, что многие не понимают того, что написано. Поэтому в этой статье постараюсь более подробно остановиться на азах и без кода на вражеском языке (C#)

27.01.2016    62659    Serginio    104       

Универсальный редактор табличных частей и движений документов (PRO) (Обычная Форма) 14

Инструменты и обработки no Внешняя обработка (ert,epf) v8 1cv8.cf Windows Платные (руб) Универсальные обработки Обработка документов

Устали редактировать документы вручную? Сэкономьте время и деньги, ускорив рутинную работу с документами.

1000 руб.

25.01.2016    19015    12    4       

Быстрое визуальное сравнение двух таблиц значений 18

Статья Программист Нет файла v8 Windows Бесплатно (free) Универсальные функции

Предлагаю простой способ сравнить две таблицы значений.

13.11.2015    11872    Mi4man    14       

Перебор всех строк дерева значений в глубину 2

Статья Программист Нет файла v8 Windows Бесплатно (free) Универсальные функции

Процедура и функция перебора всех строк дерева значений в глубину.

11.11.2015    11407    kosmo0    6