Программное заполнение пользовательских параметров и отборов СКД

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

Разработка - Практика программирования

СКД пользовательский параметр программная установка параметра отбор отбора

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

1. Пользовательские настройки СКД


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

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

В общем случае, для того, чтобы открыть отчет с заполненными параметрами используется следующая конструкция:

ПараметрыОткрытия = Новый Структура();
ПараметрыОткрытия.Вставить("СформироватьПриОткрытии", Истина);
ПараметрыОткрытия.Вставить("Вариант", КомпоновщикНастроек.Настройки);
ПараметрыОткрытия.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки);
ОткрытьФорму("Отчет.муОтчет.Форма.ФормаОтчета", ПараметрыОткрытия, ЭтаФорма, Истина);

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

1.1. Установка пользовательских параметров СКД

Для установки значения параметра обычно используется такая конструкция:

ПараметрКомпоновки = Новый ПараметрКомпоновкиДанных(ИмяПараметра);
ПараметрСКД = КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(ПараметрКомпоновки);
ПараметрСКД.Значение = Значение;
ПараметрСКД.Использование = Истина;

Данный код установит значение параметра, но при заполнении отчета переданными настройками значение параметра не отобразится на форме и реквизит будет пустым.

Для того, чтобы пользователь видел значение параметра на форме нужно добавить следующую конструкцию:

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

КонецЕсли;

Данный код по значению идентификатора пользовательской настройки находит элемент этой настройки и устанавливает значение параметра еще и там.

1.2. Установка пользовательских отборов СКД

1.2.1. Пример открытия отчета с фиксированным отбором

В общем случае для того, чтобы открыть отчет с отбором можно использовать следующие конструкции


Отбор.Вставить("Номенклатура", ОтборПоНоменклатуре);		
ПараметрыОткрытия = Новый Структура(); 	
ПараметрыОткрытия.Вставить("СформироватьПриОткрытии", Истина);
ПараметрыОткрытия.Вставить("Отбор", Отбор);
ОткрытьФорму("Отчет.муОтчет.Форма.ФормаОтчета", ПараметрыОткрытия, ЭтаФорма, Истина);

В данном случае форма откроется с отбором, но отбор не будет доступен для редактирования.

1.2.2. Пример открытия отчета с пользовательским отбором

Для того, чтобы отбор появился на форме и был доступен как в быстры отборах, так и на вкладке "отбор", нужно использовать следующую конструкцию:

//Ищем пользовательский отбор
ПользовательскийОтбор = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(
   КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки);

ЭлементОтбораПользовательский =  ПользовательскийОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

ЭлементОтбораПользовательский.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();
ЭлементОтбораПользовательский.ВидСравнения = ВидСравнения;
ЭлементОтбораПользовательский.ЛевоеЗначение = ПолеКомпоновкиЭлемента;
ЭлементОтбораПользовательский.ПравоеЗначение = Значение;
ЭлементОтбораПользовательский.Использование = Истина;

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

После чего добавить отбор в пользовательские настройки. Он появится на форме, в быстрых настройках СКД, и на вкладке "Отборы".

Если пользовательские отборы нужно объединить в группу отборов ("И", "Или", "Не"), тогда нужно сначала добавить группу пользовательского отбора:

ПользовательскийОтбор = КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.Найти(
	КомпоновщикНастроек.Настройки.Отбор.ИдентификаторПользовательскойНастройки);
		
//Добавляем в пользовательский отбор группу
ГруппаОтбора = ПользовательскийОтбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;	

//Убрано для того, чтобы группа не показывалась на форме и в основных настройках, а была только на вкладке "Отбор"
//ГруппаОтбора.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();

У группы отборов есть свойство "Элементы", чтобы элемент отбора был подчинен данной группе (находился в этой группе) Отбор нужно добавлять именно в эту группу.

Т.е. вместо

ЭлементОтбораПользовательский =  ПользовательскийОтбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

Будет

ЭлементОтбораПользовательский =  ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));

Обновлено 13.08.2020

Таким образом полный код открытия отчета с пользовательским отбором, которые будет видно в быстрых настройках формы будет следующим:


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

КонецПроцедуры


&НаСервереБезКонтекста
Функция ПолучитьПараметрыОткрытияОтчета(ИмяОтчета, Партнер)
	
	ОтчетОбъект = Отчеты[ИмяОтчета].Создать();
	
	КомпоновщикНастроек = ОтчетОбъект.КомпоновщикНастроек;
	
	УстановитьЭлементПользовательскогоОтбораСКД(КомпоновщикНастроек, ВидСравненияКомпоновкиДанных.Равно, 
		"Партнер", Партнер);
		
	ПараметрыОткрытия = Новый Структура(); 	
	ПараметрыОткрытия.Вставить("СформироватьПриОткрытии", Истина);
	ПараметрыОткрытия.Вставить("Вариант", КомпоновщикНастроек.Настройки);
	ПараметрыОткрытия.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки);
				
	Возврат ПараметрыОткрытия;

КонецФункции


&НаКлиенте
Процедура ОткрытьОтчет(Команда)
	
	ИмяОтчета = "ЗадолженностьКлиентов";
	
	ПараметрыОткрытия = ПолучитьПараметрыОткрытияОтчета(ИмяОтчета, ЭтотОбъект.Партнер);
	ОткрытьФорму("Отчет." + ИмяОтчета + ".ФормаОбъекта", ПараметрыОткрытия, ЭтотОбъект);
	
КонецПроцедуры

В результате будет открыта форма отчета с установленным пользовательским отбором.

1.2.3. Пример открытия отчета с пользовательским отбором (форма отчета из БСП)

Указанные выше способ не дает желаемого результата в конфигурациях, где используется не типовая форма отчета, а форма из БСП (Тестирование проводилось на конфигурации 1С:Комплексная автоматизация 2 (2.4.12.64)).

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


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

	ЭлементОтбора.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();
	ЭлементОтбора.ВидСравнения = ВидСравнения;
	ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных(ИмяПоля);
	ЭлементОтбора.ПравоеЗначение = Значение;
	ЭлементОтбора.Использование = Истина;

КонецПроцедуры


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

КонецФункции


&НаКлиенте
Процедура ОткрытьОтчет(Команда)
	
	ИмяОтчета = "ЗадолженностьКлиентов";
		
	ПараметрыОткрытия = ПолучитьПараметрыОткрытияОтчета(ИмяОтчета, ЭтотОбъект.Партнер);
	ОткрытьФорму("Отчет." + ИмяОтчета + ".ФормаОбъекта", ПараметрыОткрытия, ЭтотОбъект);
	
КонецПроцедуры

Обратите внимание, что в данном коде заполняются обычные настройки компоновки а не пользовательские, но указывается ИдентификаторПользовательскойНастройки, при этом платформа создаст связанный элемент пользовательского отбора в КомпоновщикНастроек.ПользовательскиеНастройки.Элементы.

Так же появился дополнительный параметр ПараметрыОткрытия.Вставить("РежимПоНастройкамКомпоновки"), для которого нужно доработать логику в метод ПриОбновленииСоставаПользовательскихНастроекНаСервере типовой формы отчета (либо поправить код, либо через расширение).

 

&НаСервере
Процедура ПриОбновленииСоставаПользовательскихНастроекНаСервере(СтандартнаяОбработка)

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

КонецПроцедуры

 

 

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. VmvLer 13.11.18 10:55 Сейчас в теме
по-моему, в СП и любой типовой в общем модуле по СКД примеров гораздо больше.

хотя спасибо за то, что скопировали пару строк кода из первой попавшейся формы или модуля.
crosby; wowik; qwinter; chebser; A_Max; rpgshnik; +6 3 Ответить
2. zqzq 21 13.11.18 13:52 Сейчас в теме
(1) Вы не поверите... Нету там ничего. В своё время решал похожую задачу, отладчик замучал (но решил).

Автору плюс.
user811769; Светлый ум; svilsa; bulpi; CyberCerber; Unk92; +6 Ответить
7. Unk92 177 14.11.18 11:16 Сейчас в теме
(1) А вы загляните и скиньте примеры методов, которые делают тоже самое..
10. VmvLer 14.11.18 11:28 Сейчас в теме
(7) откройте общий модуль ОбщегоНазначенияКлиентСервер изучайте примеры, а если проискать по общим модулям "Отбор", то можно еще найти примеры.


А в примерах автора топика я не увидел, что есть хоть намек на иерархии, а в настойках иерархия сплошь и рядом.
13. Unk92 177 15.11.18 08:33 Сейчас в теме
(10)
я не увидел, что есть хоть намек на иерархии

Я так полагаю, что речь идет о группах отборов "И", "Или", "Не".
Если так, то я учел ваш комментарий и дописал статью.
3. oleg-x 16 13.11.18 14:28 Сейчас в теме
Как раз сегодня решил такую задачку, только там сделал не через пользовательские настройки,а просто через настройки.
Во всех примерах добавления не было одной строки:
ЭлементОтбора.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();
И из-за неё потерял кучу времени, так как без этого не будут работать отборы.
AgentNiCho; +1 Ответить
4. qwinter 629 13.11.18 14:52 Сейчас в теме
Опять ИТС и БСП перепечатывают.

(3) https://its.1c.ru/db/bsp246doc#content:415:hdoc
wowik; plevakin; +2 Ответить
8. Unk92 177 14.11.18 11:19 Сейчас в теме
(4)Я не претендовал на то, что это статья уникальна в своем роде. На ИТС по вашей ссылке описан один из методов БСП, если хотите, то в данной статье просто показано, как это работает внутри.

П.С. Если не интересно, то можно всегда пройти мимо =)
19. AgentNiCho 23.10.19 16:49 Сейчас в теме
(3)
ЭлементОтбора.ИдентификаторПользовательскойНастройки = Новый УникальныйИдентификатор();


Спасибо большое за подсказку - тоже потерял кучу времени на этом.
5. monkbest 111 14.11.18 09:10 Сейчас в теме
Это про какую конфу, вид клиента? Где этот код расположен? в форме / в модуле, сервер / клиент, обычное приложение / управляемое? Конфа с БСП / без БСП?

где можно применить эти советы?
Mos; the1; +2 Ответить
6. the1 717 14.11.18 11:05 Сейчас в теме
9. Unk92 177 14.11.18 11:28 Сейчас в теме
(5) В самом начале есть пример кода, который открывает отчет СКД с параметрами.

Все чего там не хватает это

Отчет = Отчеты.муОтчет.СоздатьОбъект();
КомпоновщикНастроек = Отчет.КомпоновщикНастроек;

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

Вернемся к вашим вопросам.
1. "Это про какую конфу". Это про любую конфу, т.к. речь идет о механизмах платформы 1с 8.3
2. "Вид клиента". Естественно, что объект вы создаете на сервере, а открываете отчет на клиенте (у данной статьи нет цели рассказывать про клиент серверную архитектуру)
3. "Где этот код расположен". В месте, где вам нужно открыть отчет =)
4. "обычное приложение / управляемое?". Управляемое приложение
5. "Конфа с БСП / без БСП". Без разницы, это не функционал БСП.

П.С. По-моему часть ваших вопросов только ради вопросов...
Belayaya; marku; +2 Ответить
12. monkbest 111 14.11.18 14:11 Сейчас в теме
(9)
П.С. По-моему часть ваших вопросов только ради вопросов...

неее, просто мне задача такая часто попадается, и поэтому очень интересно, т.к. каждый раз как в первый раз трачу кучу времени в отладчике, чтобы понять, куда программно вставить значение, чтобы все красиво было. С nой попытки я нахожу куда сунуть настройки, чтобы работало, а с nХ2 - чтобы и отображалось корректно. И везде все решается по разному.

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

Ранее еб***ся с УТ 11.4. Там вроде СКД и УФ, но не совсем, т.к. есть БСП и общая формаОтчета с кучей кода в своем модуле и мне было очень грустно его читать, чтобы открыть отчет в котором на форме все красиво.

Из Вашего ответа я понял, что в УТ 11 я смогу протестить этот код и если все получиться "намотать на ус"
AgentNiCho; +1 Ответить
15. Unk92 177 15.11.18 09:09 Сейчас в теме
(12) Посмотрел код типовой УТ 11, должно все сработать, если делать по аналогии с тем. что написано в статье. Т.е. передавать пользовательские настройки через параметры открытия формы.
П.С. Сам в УТ 11 не пробовал =)
25. Unk92 177 14.08.20 10:29 Сейчас в теме
(12) Все-таки есть проблема с работоспособностью подхода в отчетах, где используется форма отчета из БСП. В конце статьи добавил пример кода, который решает данную проблему.
20. strelec13 13 31.05.20 16:09 Сейчас в теме
(9)
3. "Где этот код расположен". В месте, где вам нужно открыть отчет =)


Есть два места. При создании на сервере и при открытии формы.
Ответили ради отписки.
21. Unk92 177 01.06.20 17:01 Сейчас в теме
(20) Здравствуйте, в статье рассматривается вариант заполнения параметров отчета перед его открытием из вне, например, вы хотите расшифровать показатель отчета, другим отчетом.

ПараметрыОткрытия = Новый Структура();
ПараметрыОткрытия.Вставить("СформироватьПриОткрытии", Истина);
ПараметрыОткрытия.Вставить("Вариант", КомпоновщикНастроек.Настройки);
ПараметрыОткрытия.Вставить("ПользовательскиеНастройки", КомпоновщикНастроек.ПользовательскиеНастройки);
ОткрытьФорму("Отчет.муОтчет.Форма.ФормаОтчета", ПараметрыОткрытия, ЭтаФорма, Истина);


"Есть два места. При создании на сервере и при открытии формы." два этих места не подходят для решения данной задачи. Если вы хотите модифицировать пользовательские настройки на форме отчета, то это нужно делать в событии "ПередЗагрузкойПользовательскихНастроекНаСервере".
11. bulpi 179 14.11.18 13:55 Сейчас в теме
Ковырять типовые конфы, чтобы это найти- лучше сразу в дурдом. Автор молодец, вот только для меня поздно. Уже сам с большими мучениями это освоил.
shard; Unk92; +2 Ответить
14. VmvLer 15.11.18 08:50 Сейчас в теме
(11) Я, думаю у многих была такая ситуация, когда вы что-то велосипедили день-два, а потом произносили "твою ...", когда обнаружили требуемый функционал в модуле формы, объекта, менеджера.

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

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

Если вы не согласны со мной сейчас, то вам еще необходимо время и опыт на понимание того, что я прав.
16. Fruit83 28 21.11.18 12:50 Сейчас в теме
(14)
в которых миллионы строк кода, который очень часто лаконичен


Новичек хочет разобраться в теме и вы предлагаете ему миллионы строк лаконичного кода. Может лучше начать с простых примеров? Не?
17. insurgut 192 22.03.19 06:48 Сейчас в теме
Куча материалов о программной работе с СКД и ни одного нормального материала, для решения тех или иных задач без программирования, только при помощи использования самой СКД.

Например, если отчет - у него несколько вложенных. На форме параметр - список складов. Пользователь если устанавливает отбор - то он во вложенных схемах отработать должен. Если снимает, то отчеты выводятся без отбора по складу. Если с заполненным параметром все вроде как работает, то стоит на форме снять галочку отбора по складу, как вложенные схемы выдают "Не заполнено значение параметра", и это при том, что в самом запросе вложенной схемы используется конструкция {ГДЕ ВложенныйЗапрос.Склад В (&СпиокСкладов)}
18. Unk92 177 22.03.19 14:54 Сейчас в теме
(17) здравствуйте, использование СКД без программирования в таких задачах , на мой взгляд, только усложняет код, который тяжело сопровождать. В вашем случае нужно ставить конкретные вопросы на форуме, а не искать решения по поиску.
П.с. скорее всего ваша задача решается проще, чем то, как вы ее пытаетесь решить
22. Shurkec 13.08.20 13:18 Сейчас в теме
Куча кода в статьи и ни слова о том где это вызывать (что было неоднократно подмечено выше). Сказал "а" - так говори и "б". Тому кто хорошо в этом разбирается эта статья не нужна. Тому кто только начинает разбираться эта статья не особо поможет.
23. Unk92 177 13.08.20 14:38 Сейчас в теме
(22) В конце статьи добавил полный пример открытия отчета с пользовательским отбором по партнеру.
24. Shurkec 13.08.20 16:32 Сейчас в теме
(23) Спасибо за оперативность!
Оставьте свое сообщение

См. также

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

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

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    3673    comol    21    

Базовые вещи БСП, которые облегчат жизнь программисту 1С

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия Бесплатно (free)

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

30.08.2020    9722    quazare    33    

Программная работа с настройками СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    35121    ids79    26    

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

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Сделаем отчет на СКД полностью программно, без использования макета "схема компоновки данных".

15.01.2020    28965    John_d    22    

Использование программных перечислений, ч.1: строковые константы Промо

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

Часто ли у вас возникает необходимость в коде выполнять сравнение на строку?

10.12.2016    38223    unichkin    74    

Последовательности событий при проведении документа 1С. Шпаргалка + про формы + про расширения

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

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    21879    kuzyara    38    

30 задач. Странных и не очень

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

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

02.12.2019    18418    YPermitin    58    

Как передать IP адрес, который вызвал HTTP запрос в 1C (для веб-сервера Apache)

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

Столкнулся с задачей получения IP адреса, который вызывает http сервис 1С. Итак, решение:

22.11.2019    9339    Sibars    19    

Вспомогательные инструкции в коде 1С Промо

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

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

15.10.2018    31678    tormozit    104    

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

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

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

07.10.2019    32394    HostHost    40    

Таблица значений. Нюансы

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

Обзор некоторых аспектов использования общеизвестного инструмента 1С.

01.10.2019    38369    Yashazz    50    

СКД. Отчеты с картинками

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

Решение популярных кейсов с картинками в отчетах на СКД.

25.09.2019    24028    YPermitin    40    

Оформление и рефакторинг сложных логических выражений Промо

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

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

20.09.2012    78986    tormozit    131    

О программе Postman для тестирования API и для чего она нужна 1С-нику

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

Для чего нужна программа Postman для тестирования API и какая от него польза для 1С-программиста.

24.09.2019    13859    budidich    28    

СКД не только для отчетов

Практика программирования v8::СКД 1cv8.cf Бесплатно (free)

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

18.09.2019    20116    YPermitin    36    

[Шпаргалка] Программное создание элементов формы

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

Программное создание практически всех популярных элементов формы.

06.09.2019    62110    rpgshnik    68    

Запись значения в поле ввода/формы со срабатыванием события ПриИзменении Промо

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

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

11.07.2007    49671    tormozit    48    

Агрегатные функции СКД, о которых мало кто знает

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Пользуетесь ли Вы всеми возможными агрегатными функциями, которые предоставляет система компоновки данных? Если Вы используете только: СУММА, КОЛИЧЕСТВО, МИНИМУМ, МАКСИМУМ, СРЕДНЕЕ, то эта статья для Вас.

05.09.2019    55949    ids79    54    

Регистры бухгалтерии. Общая информация

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

Общая информация о внутреннем устройстве регистров бухгалтерии.

05.09.2019    31797    YPermitin    24    

Три костыля. Сказ про фокусы в коде

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

Три интересных (или странных) костыля в коде, которые могут помочь в повседневных и не очень задачах.

03.09.2019    26794    YPermitin    80    

Как сделать из &НаКлиентеНаСервереБезКонтекста почти &НаКлиентеНаСервере Промо

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

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

10.09.2017    46263    tormozit    74    

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

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

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

17.08.2019    34216    ids79    16    

Функции СКД: ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Подробное описание и использование внутренних функций системы компоновки данных: Вычислить, ВычислитьВыражение, ВычислитьВыражениеСГруппировкойМассив, ВычислитьВыражениеСГруппировкойТаблицаЗначений.

08.08.2019    100557    ids79    56    

Фоновое выполнение кода в 1С - это просто

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

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

02.08.2019    41940    avalakh    26    

Выгрузка документа по условию Промо

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

Что делать, если документы нужно выгружать не все подряд, а по какому-то фильтру: статусу, дате, набору условий... А что если он соответствовал этим условиям, а потом перестал? А если потом опять начал? Такие ситуации заставили попотеть не одного программиста.

25.04.2019    16342    m-rv    2    

Разбираемся с параметрами редактирования СКД

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Связь по типу, Параметры выбора, Связи параметров выбора

31.07.2019    27597    json    15    

СКД - наборы данных и связи между ними, создание собственной иерархии, вложенные отчеты

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

Набор данных объект. Использование в схеме компоновки нескольких наборов данных. Различные варианты связи наборов: объединение, соединение. Использование иерархии в отчетах на СКД. Создание собственной иерархии, иерархия детальных записей. Использование вложенных схем в отчетах на СКД.

26.07.2019    71549    ids79    12    

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

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

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

17.07.2019    38869    ids79    27    

Как прикрутить ГУИД к регистру сведений Промо

Практика программирования Перенос данных из 1C8 в 1C8 Разработка v8 Бесплатно (free)

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

16.04.2019    20843    m-rv    17    

Регистры сведений. За кулисами

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    27767    YPermitin    14    

"Меньше копипаста!", или как Вася универсальную процедуру писал

Практика программирования Разработка v8 v8::СКД 1cv8.cf Бесплатно (free)

Программист Вася разбирает подход создания универсальных методов на примере программного вывода СКД.

04.07.2019    20224    SeiOkami    50    

Работа с настройками системы компоновки данных

Практика программирования v8 v8::СКД 1cv8.cf Бесплатно (free)

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

02.07.2019    55668    ids79    17    

Как сделать запрос на изменение данных Промо

Практика программирования v8 v8::Запросы 1cv8.cf Бесплатно (free)

В статье приведены особенности внутренней архитектуры и примеры работы с расширением языка запросов 1С.

01.06.2018    31863    m-rv    21    

Создание отчетов с помощью СКД - основные понятия и элементы

Практика программирования Математика и алгоритмы v8 v8::СКД Бесплатно (free)

Основные принципы работы СКД. Понятия схемы компоновки и макета компоновки. Описание основных элементов схемы компоновки: наборы данных, поля, вычисляемые поля, ресурсы, параметры.

25.06.2019    58270    ids79    26    

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Практика программирования Производительность и оптимизация (HighLoad) v8 v8::Запросы Бесплатно (free)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    26691    dmurk    146    

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

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

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

16.05.2019    47739    YPermitin    30    

Метод формирования движений в типовых регистрах нетиповыми регистраторами Промо

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

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

05.12.2017    28730    itriot11    34    

О расширениях замолвите слово...

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

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    37271    ellavs    126    

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

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

Инструкции по взаимодействию с Git-репозиторием, которые писались для тех наших программистов, которые вообще никогда не работали с Git (руководства в духе "Как получить код из git-репозитория?", "Как отправить код в git-репозиторий")...

28.03.2019    28310    ellavs    90    

Трюки с внешними источниками данных

Практика программирования Разработка v8 1cv8.cf Бесплатно (free)

Некоторые трюки для преодоления ограничений внешних источников данных.

14.03.2019    33673    YPermitin    53    

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

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

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

27.01.2016    77955    Serginio    110    

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

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

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

07.03.2019    60090    ids79    46    

Ошибки при работе с хранилищем конфигурации и способы их решения

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

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

01.03.2019    45860    Смешной 1С    30    

Разработка и сценарное тестирование с Vanessa-ADD. Отчетность Allure. Автоматизация запуска сценариев

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

Формируем отчетность о результатах выполнения сценариев. Автоматизируем запуск.

26.02.2019    23678    Vladimir Litvinenko    28    

Автоматические и управляемые блокировки применительно к типовым конфигурациям 1С Промо

Математика и алгоритмы Практика программирования v8 v8::blocking 1cv8.cf Бесплатно (free)

Основные принципы работы с режимами автоматических и управляемых блокировок в 1С Предприятие 8. Теория и применение в типовых конфигурациях: БП, УТ, ЕРП

10.11.2018    36767    ids79    40    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

Практика программирования БСП (Библиотека стандартных подсистем) Роли и права v8 v8::Права Бесплатно (free)

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    44489    ids79    11    

Тестер: частые вопросы Промо

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

Ошибкам бой - тесты норма жизни!

25.07.2018    29928    grumagargler    28    

EnterpriseData – часть 2. Процесс выгрузки данных

Практика программирования Обмен через XML v8 v8::УФ Россия Бесплатно (free)

Основные этапы выгрузки данных через ED, обработчики событий выгрузки, правила обработки данных, правила конвертации объектов, конвертация свойств первого и второго этапов, процедуры БСП, используемые при выгрузке данных, структура «КомпонентыОбмена».

26.12.2018    28582    ids79    31