Универсальная функция для программного выполнения СКД

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

Разработка - Инструментарий разработчика

СКД Программное создание Схема Компновки Данных

110
Часто встречаются вопросы на форумах о программном формировании СКД. Вроде и информации много по этому поводу, но... Все как всегда :)
Собственно, в описании без лишних слов выложен текст общей функции, в которую, для выполнения отчета, нужно передать (минимум 2 параметра): СКД и ТабличныйДокумент.

Передаваемые параметры описаны в комментарии к процедуре.
Функция возвращает ДанныеРасшифровкиКомпоновкиДанных.

Из БСП используется только общая процедура:
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора() 

Собственно сама общая функция.

// Программный вывод СКД в указанный табличный документ.
//  Для корректного выполнения отчета нужно ограничить использование параметров.
//  Для (надеюсь временного) костыля используется перебор пользовательских параметров.
//
// Параметры:
//      СКД                         - СхемаКомпоновкиДанных - СКД которую нужно вывести
//      ТабДокумент                 - ТабличныйДокумент     - Табличный документ вывода результата
//      СтруктураПараметров         - Структура             - Структура параметров СКД
//                                                              Ключ        - Имя параметра
//                                                              Значение    - Значение параметра
//      СтруктураИсточниковДанных   - Структура             - Структура источников данных.
//                                                              Ключ        - Имя таблицы
//                                                              Значение    - Таблица источника
//      СтруктураОтборов            - Структура             - Структура отборов.
//                                                              Ключ        - Имя поля (или "СложныйОтбор")
//                                                              Значение    - Структура, Строка.
//                                                              Если "Имя поля":        Ключ - Имя параметра. Значение - Значение параметра
//                                                                                              Пример: СтруктураПараметровПроцедуры = Новый Структура("ПравоеЗначение, ВидСравнения, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки");
//                                                              Если "СложныйОтбор":    ОбщиеПроцедуры.УстановитьОбщийОтбор(Отбор);
//      ИмяВариантаНастроек         - Строка                - Имя варианта настроек
//      ОграничениеИспользованияПараметров  - Булево        - Признак необходимости ограничения использования параметров
//
// Возвращаемое значение:
//      Структура - Структура данных (Пока только Расшифровка)
//
Функция   ВыполнитьСКД(СКД, ТабДокумент, СтруктураПараметров = Неопределено, СтруктураИсточниковДанных = Неопределено, СтруктураОтборов = Неопределено, ИмяВариантаНастроек = "", ОграничениеИспользованияПараметров = Неопределено) Экспорт

    Если СтруктураПараметров = Неопределено Тогда
        СтруктураПараметров = Новый Структура;
    КонецЕсли;
    Если СтруктураОтборов = Неопределено Тогда
        СтруктураОтборов = Новый Структура;
    КонецЕсли;
    МассивПараметровОтбора = Новый Массив;
    МассивПараметровОтбора.Добавить("ПравоеЗначение");
    МассивПараметровОтбора.Добавить("ВидСравнения");
    МассивПараметровОтбора.Добавить("Представление");
    МассивПараметровОтбора.Добавить("Использование");
    МассивПараметровОтбора.Добавить("РежимОтображения");
    МассивПараметровОтбора.Добавить("ИдентификаторПользовательскойНастройки");


    Для каждого ТекущийПараметр Из СтруктураПараметров Цикл

        ОбщегоНазначенияКлиентСервер.УстановитьПараметрСКД(СКД.Параметры, ТекущийПараметр.Ключ, ТекущийПараметр.Значение, ОграничениеИспользованияПараметров);

    КонецЦикла;

    Если ПустаяСтрока(ИмяВариантаНастроек) Тогда
        Настройки = СКД.НастройкиПоУмолчанию;
    Иначе
        НайденныйВариант = СКД.ВариантыНастроек.Найти(ИмяВариантаНастроек);
        Если НайденныйВариант = Неопределено Тогда
            ОбщегоНазначенияКлиентСервер.СообщитьПользователю("Не найден вариант настроек " + НайденныйВариант);
            Возврат Неопределено;
        КонецЕсли;
        Настройки = НайденныйВариант.Настройки;
    КонецЕсли;

    Отбор = Настройки.Отбор;

    Для каждого ТекущийПараметр Из Настройки.ПараметрыДанных.Элементы Цикл
        // Надеюсь, временный костыль. Нужно перебрать параметры варианта и установить их.

        ИмяПараметра        = Строка(ТекущийПараметр.Параметр);
        ЗначениеПараметра   = Неопределено;
        Если СтруктураПараметров.Свойство(ИмяПараметра, ЗначениеПараметра) Тогда
            ТекущийПараметр.Использование   = Истина;
            ТекущийПараметр.Значение        = ЗначениеПараметра;
        КонецЕсли;

    КонецЦикла;

    Для каждого ТекущийОтбор Из СтруктураОтборов Цикл

        Если ТекущийОтбор.Ключ = "СложныйОтбор" Тогда
            // Если в качестве ключа строка "СложныйОтбор", значит установка отбора через общие процедуры:
            //  ОбщиеПроцедуры.УстановитьУниверсальныйОтбор(Отбор);

            Выполнить ТекущийОтбор.Значение;

        Иначе

            СтруктураПараметровПроцедуры = Новый Структура("ПравоеЗначение, ВидСравнения, Представление, Использование, РежимОтображения, ИдентификаторПользовательскойНастройки");

            Для каждого ТекущийПараметрОтбора Из МассивПараметровОтбора Цикл

                Если ТекущийОтбор.Значение.Свойство(ТекущийПараметрОтбора) Тогда

                    СтруктураПараметровПроцедуры.Вставить(ТекущийПараметрОтбора, ТекущийОтбор.Значение[ТекущийПараметрОтбора]);

                КонецЕсли;

            КонецЦикла;

            ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора(Настройки.Отбор, ТекущийОтбор.Ключ, СтруктураПараметровПроцедуры.ПравоеЗначение,
                                                                    СтруктураПараметровПроцедуры.ВидСравнения,
                                                                    СтруктураПараметровПроцедуры.Представление,
                                                                    СтруктураПараметровПроцедуры.Использование,
                                                                    СтруктураПараметровПроцедуры.РежимОтображения,
                                                                    СтруктураПараметровПроцедуры.ИдентификаторПользовательскойНастройки);

        КонецЕсли;

    КонецЦикла;


    КомпоновщикМакетаКомпоновкиДанных = Новый КомпоновщикМакетаКомпоновкиДанных;
    ДанныеРасшифровкиКомпоновкиДанных = Новый ДанныеРасшифровкиКомпоновкиДанных;
    МакетКомпоновкиДанных = КомпоновщикМакетаКомпоновкиДанных.Выполнить(СКД, Настройки, ДанныеРасшифровкиКомпоновкиДанных);

    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    Если Не СтруктураИсточниковДанных = Неопределено Тогда
        ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, СтруктураИсточниковДанных, ДанныеРасшифровкиКомпоновкиДанных);
    Иначе
        ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных, , ДанныеРасшифровкиКомпоновкиДанных);
    КонецЕсли;

    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ТабДокумент);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

    СтруктураВозврата = Новый Структура;
    СтруктураВозврата.Вставить("ДанныеРасшифровкиКомпоновкиДанных", ДанныеРасшифровкиКомпоновкиДанных);

    Возврат СтруктураВозврата;

КонецФункции // ВыполнитьСКД

 Спасибо, Yashazz, за то что нашел использование общей процедуры УстановитьПараметрСКД()(которую я не описал).

// Поиск и установка значения параметра схемы компоновки данных
// Параметры:
//		ПараметрыСКД		- ПараметрыСхемыКомпоновкиДанных - Параметры СКД
//		ИмяПараметра		- Строка		- Имя параметра
//		ЗначениеПараметра	- Произвольное	- Устанавливаемое значение параметра
//
Процедура УстановитьПараметрСКД(ПараметрыСКД, ИмяПараметра, ЗначениеПараметра, ОграничениеИспользования = Неопределено) Экспорт 
	
	НайденныйПараметр = ПараметрыСКД.Найти(ИмяПараметра);
	Если НайденныйПараметр = Неопределено Тогда
		Возврат;
	КонецЕсли;
	
	НайденныйПараметр.Значение		= ЗначениеПараметра;
	
	Если Не ОграничениеИспользования = Неопределено Тогда
		НайденныйПараметр.ОграничениеИспользования = ОграничениеИспользования;
	КонецЕсли;
	
КонецПроцедуры // УстановитьПараметрСКД
 
110

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

Комментарии
Избранное Подписка Сортировка: Древо
1. zqzq 16 21.05.15 08:15 Сейчас в теме
Уже было http://infostart.ru/public/80164/ причем без использования внешних функций из БСП и с возможностью выгрузки в таблицу значений. Также лучше передавать не ИмяВариантаНастроек, а сам вариант настроек: при наличии компоновщика настроек Компоновщик.ПолучитьНастройки() возвращает настройки с учетом пользовательских настроек компоновщика, по имени варианта вы их не получите.
2. dj_serega 367 21.05.15 09:36 Сейчас в теме
(1) zqzq, Спасибо за ссылку на статью. Но в ней нет возможности установить отборы (поэтому и используется общая процедура). Получается по ссылке мы можем только выполнить СКД.

Вот рабочий пример выполнения с параметрами, отборами и вариантом.

	СКД = Отчеты.Анализ.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
	
	СтруктураПараметров = Новый Структура;
	СтруктураПараметров.Вставить("Период",					КонецМесяца(ТекущаяДата()));
	СтруктураПараметров.Вставить("ФизлицоРуководитель",	Ссылка);
	
	СтруктураОтборов = Новый Структура;
	СтруктураОтборов.Вставить("СложныйОтбор", "ОбщиеПроцедурыСервер.УстановитьОтборПоПодразделению(Отбор)"); // Тут общий отбор на все отчеты
	
	СтруктураПараметровПроцедуры = Новый Структура();
	СтруктураПараметровПроцедуры.Вставить("ПравоеЗначение",	МассивФизлиц);
	СтруктураПараметровПроцедуры.Вставить("ВидСравнения",	ВидСравненияКомпоновкиДанных.ВСписке);
	СтруктураОтборов.Вставить("Физлицо", СтруктураПараметровПроцедуры); // Тут отбор по подчиненным
	
	ОбщиеПроцедурыСервер.ВыполнитьСКД(СКД, ТабДокумент, СтруктураПараметров,, СтруктураОтборов, "ПоПодчиненным", Истина);
Показать

3. zqzq 16 21.05.15 11:48 Сейчас в теме
(2) пользуюсь той процедурой. При необходимости отбора, его можно установить в настройке и передать саму настройку. Тут, наверное, удобнее.
4. Yashazz 2845 21.05.15 12:06 Сейчас в теме
Чудовищный баян. Но, вероятно, те, кому лень почитать пару абзацев у Хрусталёвой, рады возможности воспользоваться халявой, чем и объясняется рейтинг статьи.

Автор, видимо, не в курсе возможности такой вещи, как КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра, поэтому делает какие-то странные костыли, да ещё применяет какую-то левую функцию "ОбщегоНазначенияКлиентСервер.УстановитьПараметрСКД" (о чём, кстати, не предупреждает, громко заявляя, что
Из БСП используется только общая процедура:
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбора()


Полагаю, каждый более-менее грамотный специалист давно для себя сделал пакетники для работы с СКД и пользуется ими.

p.s. не говоря уж о том, что предложенное ещё и не универсально. Вывода в таблицу значений нет, а бывает очень надо. Действительно профессиональным подходом было бы сделать общий механизм - в табличный документ, таблицу, дерево.

...жаль, не нашёл, где минуснуть можно.
vardeg; Dach; +2 2 Ответить
5. dj_serega 367 21.05.15 12:24 Сейчас в теме
(4) Yashazz, Извиняюсь за указанную общую процедуру не из БСП. Уже приложил к публикации.

Автор, видимо, не в курсе возможности такой вещи, как КомпоновщикНастроек.Настройки.ПараметрыДанных.УстановитьЗначениеПараметра, поэтому делает какие-то странные костыли,

Вкурсе-вкурсе.

1. Читаем СП:
Описание:
Устанавливает значение параметра и включает свойство Использование. Если параметр с указанным именем не найден, будет вызвано исключение.
.
Обрабатывать исключения попыткой нет желания ;)
2. КомпоновщикНастроек есть в отчетах. А я эту функцию вызываю из справочников, документов и при программном формировании скд.
3.
p.s. не говоря уж о том, что предложенное ещё и не универсально. Вывода в таблицу значений нет, а бывает очень надо. Действительно профессиональным подходом было бы сделать общий механизм - в табличный документ, таблицу, дерево.

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

Чудовищный баян.

И почему баян так еще и чудовищный?
albert.goncharov; +1 Ответить
6. Yashazz 2845 21.05.15 12:48 Сейчас в теме
(5)
КомпоновщикНастроек есть в отчетах. А я эту функцию вызываю из справочников, документов и при программном формировании скд.
Да что вы говорите? А вот это уже отменили, да?
	комп=Новый КомпоновщикНастроекКомпоновкиДанных;
	комп.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(мояСКД));
	комп.ЗагрузитьНастройки(мояСКД.НастройкиПоУмолчанию);

спокойно юзается, где только в голову взбредёт.

Обрабатывать исключения попыткой нет желания ;)
А использовать циклы там, где не надо, желание есть?

Я у себя уж лет пять назад всё сделал, и в таблицу значений, и куда угодно...
7. dj_serega 367 21.05.15 12:53 Сейчас в теме
(6) Yashazz,
Да что вы говорите? А вот это уже отменили, да?

Не злитесь ;)
А использовать циклы там, где не надо, желание есть?

Как по мне то цикл с одной итерацией лучше чем инициализировать компоновщик и загружать настройки.
Я у себя уж лет пять назад всё сделал, и в таблицу значений, и куда угодно...

Можно увидеть ссылку на публикацию?
8. Yashazz 2845 21.05.15 13:35 Сейчас в теме
(7) а вы возьмите любую из моих публикаций, где мне ругались в комментах на отсутствие функций "СоздатьСКД" или "ПревращениеИмениВНаименование". Я это пихаю почти везде, а запостить вместе с основным кодом иногда забываю)))

upd: если очень надо, могу через прям щас запузырить сюда все свои основные блоки на эту тему
9. dj_serega 367 21.05.15 14:15 Сейчас в теме
(8) Yashazz,
если очень надо, могу через прям щас запузырить сюда все свои основные блоки на эту тему

А может Офигенную публикацию по своим основным блокам сделаете? ;)
10. Yashazz 2845 21.05.15 17:33 Сейчас в теме
(9) честно? Я все эти годы, глядя на свой код, думаю: "ну баян же очевидный, фигли его выкладывать", а потом обнаруживаю гораздо менее проработанные аналоги, которые, оказывается, пользуются спросом. Каждый раз ситуация сия вызывает у меня лёгкое охренение.

Сделал вот удобное создание табличного поля (реквизита и элемента формы) под УФ, потом смотрю на типовую БП 3.0 и вижу там почти ровно то же самое). Перенёс когда-то доп.свойства объектов из единого регистра сведений (как было модно во времена 8.1) в табчасть объекта, глянь - и типовая 1С туда же) Поэтому, просто баянить неохота. Если есть конкретная нужда - выложу, а так, чисто "в никуда" - смысл?...

Ну, вот, например:

// Ищет среди всей иерархии отборов Компоновщика элемент с ПолемСКД (ЛевоеЗначение), равным указанному, или
// ищет группу по её типу и имени (в этом случае рПолеСКДилиИмяТипГруппы это структура: ИмяГруппы, ТипГруппы)
// Если не нашёл, возвращает Неопределено.
Функция ПолучитьОтборСКД(рКомпоновщикИлиОтбор,рПолеСКДилиИмяТипГруппы) Экспорт
	Если ТипЗнч(рКомпоновщикИлиОтбор)=Тип("ОтборКомпоновкиДанных") или ТипЗнч(рКомпоновщикИлиОтбор)=Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
		обрОткуда=рКомпоновщикИлиОтбор;
	ИначеЕсли ТипЗнч(рКомпоновщикИлиОтбор)=Тип("КомпоновщикНастроекКомпоновкиДанных") Тогда
		обрОткуда=рКомпоновщикИлиОтбор.Настройки.Отбор;
	Иначе
		Возврат Неопределено;
	КонецЕсли;
	Если ТипЗнч(рПолеСКДилиИмяТипГруппы)=Тип("ПолеКомпоновкиДанных") Тогда
		рИщемДляЭлемента=Истина;
	ИначеЕсли ТипЗнч(рПолеСКДилиИмяТипГруппы)=Тип("Структура") Тогда
		рИщемДляЭлемента=Ложь;
	Иначе
		Возврат Неопределено;
	КонецЕсли;
	//
	Для каждого элотб Из обрОткуда.Элементы Цикл
		#Если Клиент Тогда
			ОбработкаПрерыванияПользователя();
		#КонецЕсли
		рТип=ТипЗнч(элотб);
		Если рТип=Тип("ЭлементОтбораКомпоновкиДанных") Тогда
			Если рИщемДляЭлемента и элотб.ЛевоеЗначение=рПолеСКДилиИмяТипГруппы Тогда
				Возврат элотб;
			КонецЕсли;			
		ИначеЕсли рТип=Тип("ГруппаЭлементовОтбораКомпоновкиДанных") Тогда
			Если не рИщемДляЭлемента 
			и СокрЛП(элотб.Представление)=СокрЛП(рПолеСКДилиИмяТипГруппы.ИмяГруппы)
			и элотб.ТипГруппы=рПолеСКДилиИмяТипГруппы.ТипГруппы
			Тогда
				Возврат элотб;
			КонецЕсли;
			// идём глубже
			Возврат ПолучитьОтборСКД(элотб,рПолеСКДилиИмяТипГруппы);
		КонецЕсли;
	КонецЦикла;
	//
	Возврат Неопределено;
КонецФункции


// Добавляет произвольное условное оформление на управляемую форму; должна вызываться строго с сервера
// Параметры:
//    рФорма - сериализованная форма, вызванная с &НаСервере
//    рПараметры - структура:
//         ОформляемоеПоле - строка (обязательный), имя элемента формы, подлежащего оформлению
//         ПолеИсточник - строка (обязательный), имя реквизита формы, чьи данные определяют отбор
//         ВидСравнения - вид сравнения СКД для отбора условия оформления
//         ПравоеЗначение - конкретное значение реквизита ПолеИсточник, определяющее отбор
//         Оформление - структура с именами полей (см.ниже), определяющая оформление (по умолч.жирный шрифт)
//         
// Имена элементов настройки оформления:
// ЦветТекста (TextColor); 
// ЦветФона (BackColor); 
// Шрифт (Font); 
// Формат (Format); 
// ГоризонтальноеПоложение (HorizontalAlign); 
// ВертикальноеПоложение (VerticalAlign); 
// ОриентацияТекста (TextOrientation); 
// Отступ (Indent); 
// АвтоОтступ (AutoIndent); 
// ВыделятьОтрицательные (MarkNegatives); 
// Текст (Text).
//
Процедура ДобавитьУсловноеОформление(рФорма,рПараметры) Экспорт
Попытка
	// адреса (обязательное)
	рПутьОформляемогоПоля=СокрЛП(рПараметры.ОформляемоеПоле);
	рПутьПоляИсточника=СокрЛП(рПараметры.ПолеИсточник);
	// оформление и прочее
	рВидСравнения=?(рПараметры.Свойство("ВидСравнения"),рПараметры.ВидСравнения,ВидСравненияКомпоновкиДанных.Равно);
	рПравоеЗначение=?(рПараметры.Свойство("ПравоеЗначение"),рПараметры.ПравоеЗначение,Неопределено);
	рОформление=?(рПараметры.Свойство("Оформление"),рПараметры.Оформление,Новый Структура);
	Если рОформление.Количество()=0 Тогда 
		рОформление.Вставить("Шрифт",Новый Шрифт(,,Истина));
	КонецЕсли;
	
	// оформляемый элемент добавляем каждый раз, не глядя, что уже есть элементы про этот же элемент формы!
	// если делать иначе, то для каждого элформы возможно лишь одно оформление
	рПолеОформляемое=Новый ПолеКомпоновкиДанных(рПутьОформляемогоПоля);
	эуо=рФорма.УсловноеОформление.Элементы.Добавить();
	полеэуо=эуо.Поля.Элементы.Добавить();
	полеэуо.Поле=рПолеОформляемое;
	полеэуо.Использование=Истина;
	//
	рПолеИсточник=Новый ПолеКомпоновкиДанных(рПутьПоляИсточника);
	отб=ПолучитьОтборСКД(эуо.Отбор,рПолеИсточник);
	Если отб=Неопределено Тогда
		отб=эуо.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		отб.ЛевоеЗначение=рПолеИсточник;
	КонецЕсли;
	отб.ВидСравнения=рВидСравнения;
	отб.ПравоеЗначение=рПравоеЗначение;
	Для каждого киз Из рОформление Цикл
		эуо.Оформление.УстановитьЗначениеПараметра(киз.Ключ,киз.Значение);
	КонецЦикла;
	//
Исключение
	Сообщить("РаботаСДиалогамиСервер.ДобавитьУсловноеОформление, ошибка: "+ОписаниеОшибки(),СтатусСообщения.ОченьВажное);
КонецПопытки;
КонецПроцедуры

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


И кому оно надо?
17. akor77 897 22.11.15 22:08 Сейчас в теме
(5) не поддавайся на провокации!
Процветай и преуспевай!
http://www.scientology.ru/videos/category/twth/twth-film-precept-21.html#/videos/category/twth/twth-film-precept-21
Вспомни, как меня на корню хотел один тип задавить.
Начал, продолжай, развивай!
dj_serega; +1 Ответить
11. Yashazz 2845 22.05.15 16:34 Сейчас в теме
Вообще, тенденция пугающая. Стабильно большой популярностью пользуются куцые, слабо структурированные, откровенно копипащенные, мутно и отрывочно изложенные "публикации", выложенные средненько знающими для совсем слабо знающих. За счёт рейтинга такие горе-публикации легко обходят действительно профессиональные разработки, стоившие несоизмеримо больше ресурсов их авторам. Энтузиазм профи-авторов, таким образом, не получает должной оценки. Так на первый план ИС выходят не профессиональные разработки, как хотелось бы, а убогие исходники или псевдо-учебные фрагменты (редко-редко можно видеть действительно качественный учебник, буде то справочник или пошаговик). В результате ИС становится "лягушатником" для начинающих, которые и жёлтых книжек-то не читали, не то что материалов ИТС, а в "лучших" публикациях болтается такое позорище, что уж не знаю, как Доржи перед 1С не стыдно.

пы.сы. Себя отношу не к профи, а к средненько знающим. Именно посмотрев на ситуацию и рейтинг, резко перестал выкладывать "статьи". Мне хватило печального опыта с XPath и модальностями/асинхроном. Жаль, что автору этой публикации самокритики недостаёт.
KSy; unichkin; +2 Ответить
12. dj_serega 367 22.05.15 17:41 Сейчас в теме
(11) Yashazz,
Стабильно большой популярностью пользуются куцые, слабо структурированные, откровенно копипащенные, мутно и отрывочно изложенные "публикации", выложенные средненько знающими для совсем слабо знающих.

Такие публикации не всегда вырываются в перед.
Так на первый план ИС выходят не профессиональные разработки, как хотелось бы

Да ну. Вот взять к примеру ildarovich'а. Его публикации всегда пользуются популярностью. И очень часто на первых местах.
Жаль, что автору этой публикации самокритики недостаёт.

Жаль что Вы так считаете.

Именно посмотрев на ситуацию и рейтинг, резко перестал выкладывать "статьи".

А Вы не сдавайтесь, выкладывайте свои Стоящие статьи. С интересом почитаю.
13. gigapevt 19 27.05.15 09:28 Сейчас в теме
(12) Согласен с автором, тоже с удовольствием почитаю !
14. alon 171 27.05.15 11:37 Сейчас в теме
Вряд ли возможно научиться сразу выдать профессионально написанные публикации, полезные специалистам абсолютно всех уровней. Всегда приходится с чего-то начинать.
Кроме того, часто только в процессе обсуждения удается выяснить некоторые нюансы обсуждаемого вопроса. При этом пользу получает и автор и окружающие, которые не будут повторять те же грабли.
Я считаю, что здесь на передний план выступает более глубокая модерация знающими специалистами. Нужно установить более строгие требования на публикацию. Сделать предварительное обсуждение в песочнице. Ранжировать статьи для разных уровней профессионализма.
Вы же не предъявляете к ребенку на уроке рисования те же требования, что и к выпускнику художественного училища? То же самое и тут.
cleaner_it; user804163; V.Nikonov; KSy; dgolovanov; dj_serega; +6 Ответить
18. cleaner_it 238 21.11.17 09:51 Сейчас в теме
(14) Больше двух лет прошло - до сих пор актуально)
15. IamIvan 20.06.15 23:10 Сейчас в теме
Программное выполнение это здорово.
А кто-нибудь решал задачку такого рода:
Есть внешние отчеты на СКД. Надо из одной конфигурации выполнить их в другой и отобразить.

Я ничего кроме как выполнить запрос через ком и подставь в таблицу набора не придумал.
16. tristarr1 45 08.09.15 09:03 Сейчас в теме
(15) IamIvan, А данные нужны с расшифровками? если без, то можно выполнять их и передавать табличный документ.
Оставьте свое сообщение

См. также

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

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

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

10.10.2019    2020    Yashazz    31       

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

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

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

07.10.2019    5533    HostHost    21       

FastCode - сервис поиска кода 1С 48

Инструменты и обработки Программист Архив с данными v8 Бесплатно (free) Инструментарий разработчика

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

10.09.2019    4757    m.bolsun    21       

Как мы разрабатываем в EDT 63

Статья Программист Нет файла v8 Бесплатно (free) EDT

EDT – это новая среда разработки, на которую сейчас перешли разработчики фирмы «1С». Однако до сих пор существует ряд «белых пятен», касающихся как теоретической, так и практической части применения этого инструмента. Про опыт перехода на разработку в EDT на конференции INFOSTART EVENT 2018 EDUCATION рассказал начальник сектора разработки в компании «Группа Полипластик» Владимир Крючков.

23.08.2019    5054    ivanov660    21       

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

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

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

17.08.2019    7978    ids79    14       

1С:EDT. Первые шаги… или есть ли альтернатива конфигуратору? 81

Статья Программист Нет файла v8 Windows Бесплатно (free) EDT

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

15.08.2019    7577    ellavs    76       

СКД - использование расширений языка запросов, секция ХАРАКТЕРИСТИКИ 134

Статья Программист Нет файла v8 v8::СКД Бесплатно (free) Инструментарий разработчика Практика программирования Разработка

Автоматическое и не автоматическое заполнение полей компоновки данных. Использование расширений языка запросов для СКД «{…}», секция ВЫБРАТЬ, секция ГДЕ, параметры виртуальных таблиц. Автоматизированное использование дополнительных данных в запросе: секция ХАРАКТЕРИСТИКИ.

17.07.2019    8467    ids79    24       

Групповая обработка (Управляемая консоль отчетов) 26

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

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

13.05.2019    3447    Evg-Lylyk    6       

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

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

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

13.05.2019    2371    Serge R    5       

Перенос и резервное копирование настроек конфигуратора 55

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

Удобный перенос между рабочими местами и резервное копирование настроек конфигуратора через подсистему "Инструменты разработчика".

14.04.2019    4934    tormozit    18       

Как добавить типовую форму для СКД (для начинающих) (1С 8.3, управляемые формы) 9

Статья Программист Стажер Нет файла v8 v8::УФ v8::СКД Бесплатно (free) Инструментарий разработчика Работа с интерфейсом

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

25.03.2019    5281    ellavs    9       

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

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

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

22.03.2019    8651    ids79    14       

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

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

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

07.03.2019    22900    ids79    32       

Расширение конструктора мобильного рабочего места для варианта "клиент 1С+RDP" (для любых wi-fi терминалов). Экосистема решений Simple WMS 20

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

Развитие проекта «Конструктор мобильного клиента на Android» https://infostart.ru/public/976636/ для устройств не на Андроиде (работающих в режиме RDP). В отличие от варианта Android работа на терминалах происходит в режиме 1С:Предприятие через RDP а конфигурации мобильных клиентов полностью совместимы для обоих версий. Т.е. конфигурация единая, создается один раз и ее может читать как Android -устройство, так и 1С-клиент на RDP без необходимости какой либо переделки.

05.02.2019    5803    informa1555    0       

Git + 1С. Часть 2. Реализация Git workflow в 1С-разработке по шагам 128

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

В этой части мы рассмотрим наиболее распространённую схему workflow при групповой разработке с использованием Git. Как приступить к доработке по поставленной задаче; исправить ошибку, обнаруженную на этапе тестирования; отправить свой код на слияние в предстоящий релиз; и т.д. Постараемся охватить большинство задач, составляющих основной цикл разработки

28.01.2019    9702    stas_ganiev    18       

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

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

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

14.01.2019    7366    Evg-Lylyk    17       

Автоматизация тестирования с помощью WinAutomationUI 28

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

Рассматривается использование инструмента WinAutomationUI для создания автоматизированных сценарных тестов на примере 1 + 1 = 2.

11.12.2018    3865    AlexKo    30       

[8.3] Анализ планов запросов (Управляемая консоль отчетов) 131

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

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

19.11.2018    13907    Evg-Lylyk    6       

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

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

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

14.11.2018    31352    GeterX    93       

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

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

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

07.11.2018    12772    fromlion    12       

Метрики, графики, статистика = Prometheus + Grafana 108

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

Снятие метрик из базы данных 1С с хранением в Phrometheus и красивое оформление на основе Grafana. Или как мы создавали комфортные условия административному персоналу на отдельно взятом складе.

23.10.2018    9470    197    freewms    64       

Git + 1С. Часть 1. Как подключиться к команде разработки и начать использовать Git 266

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

Первая статья из цикла инструкций по работе с Git в 1С-разработке. Рассмотрим, как настроить рабочее место, как получить свою "копию" проекта для разработки и приступить к полезным действиям. Все примеры будут изложены в рамках трёх практических кейсов: 1. Моя команда дорабатывает типовую конфигурацию, использует приватный репозиторий на BitBucket, в котором версионируются внешние отчеты/обработки, расширения конфигураций и правила обмена; 2. Я участвую в стартап-команде, которая разрабатывает свою конфигурацию с использованием Git и GitLab; 3. Я принимаю участие в развитии OpenSource-продукта на GitHub как заинтересованный разработчик (контрибьютор).

18.10.2018    33305    stas_ganiev    72       

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

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

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

27.09.2018    6484    bmk74    2       

Взгляд на практику разработки в EDT из зазеркалья 115

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

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

26.07.2018    17267    ivanov660    104       

Практика применения инструментов продвинутого разработчика 1С 155

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

Статья адресована разработчикам. Будет чуть-чуть теории, будут воспоминания, и потом пойдет практика.

23.07.2018    19504    artbear    22       

Лайфхак: исходники внешних обработок и отчетов 1С - это просто. 33

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

Важно: статья далеко на любителя всяких таких git'ов, gitlab'ов и oscript'ов.

22.06.2018    7586    new_user    11       

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

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

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

09.06.2018    7340    Serge R    12       

Создание поставки конфигурации 97

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

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

27.02.2018    13370    Vladimir_412    6       

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

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

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

19.02.2018    35369    ildarovich    44       

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

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

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

22.12.2017    18782    rpgshnik    21       

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

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

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

08.12.2017    12331    frkbvfnjh    19       

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

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

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

08.11.2017    15304    azubar    9       

Легкий способ обновления измененной конфигурации 41

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

Легкий способ обновления измененной конфигурации. Сервис подготовки расширения конфигурации

25.10.2017    18493    avk72    63       

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

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

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

12.10.2017    14430    for_sale    58       

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

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

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

11.08.2017    9705    jun-ko    24       

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

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

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

07.07.2017    7135    dimasts    5       

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

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

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

16.12.2016    27739    alexandersh    45       

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

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

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

09.11.2016    9977    gortrex    8       

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

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

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

29.09.2016    46238    dour-dead    21       

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

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

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

27.09.2016    16848    serg_infostart    15       

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

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

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

23.08.2016    27613    Патриот    22       

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

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

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

18.08.2016    15817    maxvcb    27       

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

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

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

15.08.2016    59087    Yashazz    23       

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

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

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

03.08.2016    16163    Патриот    23       

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

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

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

25.07.2016    39342    serg_infostart    19