Этюды по программированию. Хитрости создания расширений для конфигураций на БСП. Часть 2

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

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

Расширение БСП

Некоторые нюансы, если вы захотите создавать свои расширения. Продолжение первой части.

Этюды по программированию. Хитрости создания расширений для конфигураций на БСП. Часть 2.

 

Первая часть статьи  здесь: //infostart.ru/public/996052/

Рассмотрим модификацию справочника основной конфигурации и формы элемента, без затягивания формы в расширение на примере модификации справочника сотрудника в конфигурации ЗУП 3.1.

В  первую очередь затянем в расширение сам справочник и добавим ему необходимые реквизиты и табличные части:

После этого проанализируем модуль формы:

&НаСервере

Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)

//…

СотрудникиФормы.СотрудникиПриСозданииНаСервере(ЭтотОбъект, Отказ, СтандартнаяОбработка);

//…

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

В процедуре “ПриСозданииНаСервере” есть подходящий нам вызов общего модуля, в который передается ЭтотОбъект.

Затянем модуль “ СотрудникиФормы ” его в раcширение и модифицируем процедуру “ СотрудникиПриСозданииНаСервере” таким образом, чтоб после выполнения стандартной функции вызывался наш код создания элементов на форме:

&После("СотрудникиПриСозданииНаСервере")

Процедура ИЦ_СотрудникиПриСозданииНаСервере(Форма, Отказ, СтандартнаяОбработка) Экспорт

//… наш код создания реквизитов на форме

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

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

Декомпиляция управляемых форм (3.0.1)  //infostart.ru/public/304736/  от Евгении Карук (Не забудьте поставить ей плюс).

Код формирования элементов из обработки:

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

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

На второй закладке необходимо получить:

 

Для этого нам на форме нужна команда “Сделать основным”, делающая основной выбранную табличную строку ТЧ “ИЦ_Оборудование”

	
	// ******   Команда формы "СделатьОсновным"    ***********
	
	НоваяКоманда = ЭтаФорма.Команды.Добавить("СделатьОсновным");
	НоваяКоманда.Действие = "Подключаемый_ВыполнитьКоманду";
	НоваяКоманда.Заголовок = "Сделать основным";
	НоваяКоманда.ИзменяетСохраняемыеДанные = Ложь;
	НоваяКоманда.Отображение = ОтображениеКнопки.Авто;
	НоваяКоманда.Подсказка = "Сделать основным";
	
	КнопкаФормы = ЭтаФорма.Элементы.Добавить(НоваяКоманда.Имя, Тип("КнопкаФормы"), ЭтаФорма.Элементы.ИЦ_ОборудованиеКоманднаяПанель);
	КнопкаФормы.Вид = ВидКнопкиФормы.КнопкаКоманднойПанели;
	КнопкаФормы.ИмяКоманды = НоваяКоманда.Имя;
	

Обратите внимание на строку:

НоваяКоманда.Действие = "Подключаемый_ВыполнитьКоманду";

В качестве команды мы выбрали процедуру обработчик “Подключаемый_ВыполнитьКоманду” которая уже есть в модуле формы и служит для подключения динамических команд, таких как команды печати, которые определяются в модуле формы.

Мы сделаем проще: затянем в расширение модуль ”ПодключаемыеКомандыКлиент” и модифицируем процедуру “ВыполнитьКоманду” таким образом, чтоб вместо выполнения стандартной функции вызывался наш код, но только для нашей команды. Если команда не наша, то работает основной механизм.

&Вместо("ВыполнитьКоманду")
Процедура ИЦ_ВыполнитьКоманду(Форма, Команда, Источник) Экспорт
	Если Форма.ИмяФормы="Справочник.Сотрудники.Форма.ФормаЭлемента" И Команда.Имя= "СделатьОсновным" Тогда
		ТекОборуд = Форма.Элементы.ИЦ_Оборудование.ТекущиеДанные.МожетРаботатьНаСледующемОборудование;
		Сотрудник= Источник;
		ИЦ_Сервер.НазначитьОсновнымНаСервере(Сотрудник,ТекОборуд);
		КопироватьДанныеФормы(Сотрудник, Источник);
	Иначе
		ПродолжитьВызов(Форма, Команда, Источник);
	КонецЕсли;
КонецПроцедуры

//... в модуле ИЦ_Сервер:

&НаСервере
Процедура НазначитьОсновнымНаСервере(Объект,ТекОборуд) Экспорт
	Объект.ОсновноеОборудование = ТекОборуд;
	Для Каждого СтрОборуд из Объект.ИЦ_Оборудование Цикл
		Если СтрОборуд.МожетРаботатьНаСледующемОборудование <> ТекОборуд Тогда
			СтрОборуд.Основной = Ложь;
		Иначе
			СтрОборуд.Основной = Истина;
		КонецЕсли;
	КонецЦикла;	
КонецПроцедуры

Осталось дописать код условного оформления для формы.

	// ******  УсловноеОформление   ***********
	ТекущийШрифт = ЭтаФорма.Элементы["ИЦ_Оборудование"].Шрифт;
	ЖирныйШрифт = Новый Шрифт(ТекущийШрифт, , , Истина);
	ЭлементУсловногоОформления=ЭтаФорма.УсловноеОформление.Элементы.Добавить();
	ФильтрЭлемента=ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
	ФильтрЭлемента.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Сотрудник.ИЦ_Оборудование.Основной");
	ФильтрЭлемента.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
	ФильтрЭлемента.ПравоеЗначение=Истина;
	ФильтрЭлемента.Использование=Истина;
	ОформляемыеПоля=ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ОформляемыеПоля.Использование=Истина;
	ОформляемыеПоля.Поле=Новый ПолеКомпоновкиДанных("ИЦ_ОборудованиеМожетРаботатьНаСледующемОборудование");
	ОформляемыеПоля=ЭлементУсловногоОформления.Поля.Элементы.Добавить();
	ОформляемыеПоля.Использование=Истина;
	ОформляемыеПоля.Поле=Новый ПолеКомпоновкиДанных("ИЦ_ОборудованиеИЦ_СтепеньВладенияОборудованием");
	ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", ЖирныйШрифт);
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
	"ВЫБРАТЬ
	|	ИЦ_СтепеньВладенияОборудованием.Ссылка КАК Ссылка,
	|	ИЦ_СтепеньВладенияОборудованием.ЦветОтображения КАК ЦветОтображения
	|ИЗ
	|	Справочник.ИЦ_СтепеньВладенияОборудованием КАК ИЦ_СтепеньВладенияОборудованием";
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		ЭлементУсловногоОформления=ЭтаФорма.УсловноеОформление.Элементы.Добавить();
		ФильтрЭлемента=ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ФильтрЭлемента.ЛевоеЗначение=Новый ПолеКомпоновкиДанных("Сотрудник.ИЦ_Оборудование.ИЦ_СтепеньВладенияОборудованием");
		ФильтрЭлемента.ВидСравнения=ВидСравненияКомпоновкиДанных.Равно;
		ФильтрЭлемента.ПравоеЗначение=ВыборкаДетальныеЗаписи.Ссылка;
		ФильтрЭлемента.Использование=Истина;
		ОформляемыеПоля=ЭлементУсловногоОформления.Поля.Элементы.Добавить();
		ОформляемыеПоля.Использование=Истина;
		ОформляемыеПоля.Поле=Новый ПолеКомпоновкиДанных("ИЦ_ОборудованиеИЦ_СтепеньВладенияОборудованием");
		ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("ЦветФона", ВыборкаДетальныеЗаписи.ЦветОтображения.Получить());
	КонецЦикла;

 

 

Акция! Вы можете  скачать архив всех моих разработок, которые я предлагаю за StartMone, по Специальной  цене:  //infostart.ru/public/960899/#archive

.

Молочников Олег Spb. 2019.

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. milkers 2415 16.04.19 15:42 Сейчас в теме
(1) Я читал документацию по этой подсистеме. Если следовать всей процедуре то количество кода сильно увеличится, а результат будет тот же.
4. davdykin 24 17.04.19 04:59 Сейчас в теме
(3) Ну и зря вы.. Старт монЕ, звучит куда благородней чем старт мани ))
5. the1 584 17.04.19 09:07 Сейчас в теме
А почему новые реквизиты расширения без префиксов?
6. milkers 2415 17.04.19 09:16 Сейчас в теме
(5) По-тому что поленился переименовывать. Переделываю готовое решение в расширение. Слишком много сложного кода придется переписывать.
7. mai_k 18.04.19 08:43 Сейчас в теме
А я вот столкнулся с такой бедой - Ошибки при использовании расширения
Т.е. при добавлении какого-либо реквизита в документ в расширении и после ТиС эти документы исчезают из журналов.
Вот такая беда.
8. milkers 2415 23.04.19 14:01 Сейчас в теме
(7) Нет ли здесь проблемы с правами доступа на реквизит?
9. mai_k 23.07.19 11:02 Сейчас в теме
(8) Создал уже отдельную роль и изменил существующую. Так же после тестирования очищаются реквизиты. Что за беда?
10. tirli41 01.08.20 10:04 Сейчас в теме
Приветствую, конфа на БСП, как в расширении свой созданный документ прикрутить к СтруктуреПодчиненности основной конфигурации для отображения? В расширении док "Расш1_Заявка" на его основании успешно создается и заполняется типовой "ПоступлениеТМЗ", так как нет возможности расширить тип реквизита ДокументОснование для "ПоступлениеТМЗ", в расширении создал свой реквизит ДокументОснованиеЗаявка, на форме заполняется, работать с ним можно. Осталось при нажатии кнопки "Иерархический просмотр структуры подчиненности" отобразить документ из расширения.
Прикрепленные файлы:
Оставьте свое сообщение

См. также

Как я начал администрировать сервер 1С: Предприятие 8.3 с телефона Промо

Администрирование данных 1С Мобильная разработка v8 Бесплатно (free)

Развитие инструментов управления кластером серверов 1С:Предприятие 8.3.

14.04.2017    60013    user700211_a.straltsou    27    

Использование флажков в динамических списках

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

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

04.08.2020    1809    nekit_rdx    22    

Использование ПоказатьВопрос() в событии НачалоВыбора()

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

На ИТС описано, как избегать использования модальности в событиях ПередЗаписью() и ПередЗакрытием() (можно ознакомиться по ссылке http://its.1c.ru/docs/v8nonmodal/). А что делать, если нужно задать вопрос пользователю в событии НачалоВыбора(). В данной статье приведу пример реализации с использованием асинхронного вызова ПоказатьВопрос(). Статья предназначена в основном для начинающих программистов, недавно столкнувшихся с управляемыми формами.

20.07.2020    1242    biimmap    2    

Открытие управляемой формы 1С 8.3 с измененным несохраненным объектом

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

Как загрузить в управляемую форму программно изменённый несохранённый документ (или элемент справочника).

13.07.2020    2747    plainer    11    

Копирование числовых ячеек из 1С в Excel Промо

Загрузка и выгрузка в Excel Администрирование данных 1С v8 1cv8.cf Бесплатно (free)

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

15.01.2019    23223    itriot11    25    

Команда "Вывести список" для динамического списка. Программное выполнение (вариант)

Универсальные функции v8::УФ 1cv8.cf Бесплатно (free)

Делаем свою кнопку вместо "Вывести список" из пункта "ещё" динамического списка.

11.06.2020    2761    DanDy    58    

Обработка нажатия клавиши

Работа с интерфейсом v8::УФ Бесплатно (free)

Один из способов обработки события нажатия клавиши.

10.06.2020    2018    RotaninV    7    

Серверные вызовы, которые нельзя вызывать

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

Не баян, а классика. Рассмотрим особенность платформы настолько же древнюю, как сами УФ.

12.05.2020    5733    SeiOkami    28    

Обмен данными. Консистентность vs Многопоточность Промо

Интеграция v8 1cv8.cf Бесплатно (free)

Рассмотрим теоретические основы обмена данными. Какие бывают обмены, какие гарантии при этом даются, зачем идти на компромиссы и что при этом может пойти не так. Есть ли идеальная схема?

03.09.2019    11801    m-rv    1    

Форма выбора (подбор) в управляемых формах

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

Разбор небольших примеров того, как правильно открывать форму выбора (подбора) в управляемых формах, не прибегая к модальным окнам.

08.05.2020    13737    user5300    15    

Как ограничить поля отбора в динамическом списке и ничего не сломать

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

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

06.05.2020    4312    SeiOkami    3    

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

Прочие инструменты разработчика Консоль запросов v8::УФ v8::Запросы v8::СКД Бесплатно (free)

Консоль запросов и СКД – один из наиболее часто используемых программистом инструментов. Как с его помощью можно упростить разработку, в своем докладе на конференции Infostart Event 2019 Inception рассказал Евгений Люлюк, ведущий программист компании GLT.

06.04.2020    6289    Evg-Lylyk    0    

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

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

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

10.12.2016    36816    unichkin    46    

5 шагов по изменению резервирования товаров в УТ 11.4

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

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

19.03.2020    4373    Igorro82IT    16    

Об обновлениях

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

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

12.02.2020    2544    ipoloskov    27    

Детектор завершения согласования для 1С: Документооборот КОРП

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

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

04.02.2020    2856    shiaju    3    

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

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

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

15.10.2018    29337    tormozit    100    

Как вывести итоговый вес и объем на форму документа Заказ клиента. УТ 11.4

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

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

16.01.2020    3610    VID1234    4    

Как работают управляемые формы и тонкий клиент 1С – взгляд "из-под капота"

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

Переход на управляемые формы перевернул процесс разработки на 1С, заставив программистов менять привычные подходы к описанию логики работы интерфейса. Руководитель компании «Цифровой Кот» Юрий Лазаренко в своем докладе на конференции Infostart Event 2019 Inception рассказал о том, как устроены управляемые формы и как правильно работать с тонким клиентом платформы 1С:Предприятие.

23.12.2019    12081    TitanLuchs    23    

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

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

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

20.09.2012    77216    tormozit    131    

Обработка расширением на клиенте

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

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

31.10.2019    6937    EvgenURNN    9    

Изменение макета в карточке номенклатуры(УТ 11, КА 2)

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

Краткая памятка по выведению добавленного реквизита в справочнике Номенклатура в стандартную карточку номенклатуры в УТ 11, КА 2, ERP 2.

24.10.2019    4258    darkultro37    4    

Формы. Трудности программной работы

Работа с интерфейсом v8 v8::УФ 1cv8.cf Бесплатно (free)

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

06.10.2019    11538    YPermitin    31    

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

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

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

11.07.2007    47517    tormozit    40    

Передача данных с сервера на клиент через WebSocket NativeAPI и Centrifugo

Интеграция v8::УФ 1cv8.cf Россия Бесплатно (free)

В статье описываю реализацию обмена для замены передачи сообщений через 1С Сервер взаимодействия.

23.09.2019    6998    malikov_pro    11    

"Вы всё сломали!". Разбираемся, кто прав, кто виноват

Практика программирования v8::УФ ИТ-компания Россия Бесплатно (free)

О том, как "всё испортил" программист, а на самом деле виноват заказчик.

20.09.2019    5886    RomanCrow13    27    

Оповещения боту из 1С за 31 минуту

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

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

18.09.2019    16644    feva    39    

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

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

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

10.09.2017    43850    tormozit    74    

Работа из 1С с API PayPal

WEB v8::УФ 1cv8.cf Бесплатно (free)

PayPal - международная платежная система является очень популярной за пределами СНГ для онлайн торговли и не только. API PayPal достаточно хорошо документирован. При попытке связать 1C с PayPal пришлось столкнуться с несколькими нюансами, которыми и хотелось бы поделиться в этой статье с примерами программного кода.

08.09.2019    5400    da_1c    1    

EnterpriseData – часть 3. Загрузка данных, идентификация объектов

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

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

22.08.2019    14325    ids79    8    

Кодовое создание документа на 8.3, управляемые формы (на примере)

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

В своё время мне нужен был код создания документа через обработку, пол дня потерял пока нашёл гайд по решению данной задачи. Поэтому просто решил поделиться данным решением. Подойдёт только новичкам, опытные программисты могут даже не читать =)

07.08.2019    5742    Nefilimus    16    

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

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

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

25.04.2019    15860    m-rv    2    

Автоматическая SMS рассылка

SMS рассылки v8 v8::УФ Розница УТ11 Бесплатно (free)

Как сделать автоматическую рассылку SMS именинникам на примере Розница 2.2.

29.07.2019    4440    Elvisnya    8    

Вставка гиперссылки в форматированный документ

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

Да, форматированный документ это умеет и сам, но возможности можно расширить!

03.06.2019    6168    Yashazz    0    

Добавление внешних отчетов / обработок в собственные подсистемы

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

Краткая инструкция по добавлению функционала доп обработок/отчетов в собственную подсистему.

24.05.2019    9836    login1020    7    

Как настроить правильную техподдержку (helpdesk, service desk на коленке) Промо

Управление услугами и сервисом Управление взаимоотношениями с клиентами (СRM) Документооборот и делопроизводство Монитор заказов Учет рабочего времени Управление взаимоотношениями с клиентами (СRM) Документооборот и делопроизводство Монитор заказов Учет рабочего времени v8 УУ Бесплатно (free)

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

24.04.2019    17049    siddy    0    

Подсистема БСП «Управление доступом», основные объекты и регистры

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

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

23.05.2019    20786    ids79    9    

Расшифровка отчета на СКД с детализацией по выбранному полю на основе БСП

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

В данной статье рассмотрим механизм работы с расшифровкой отчета, созданного при помощи системы компоновки данных, в управляемом приложении. Показывать буду на примере реальной задачи. Условие: использовать имеющиеся в конфигурации механизмы БСП, с минимальными и "правильными" изменениями. Расшифровка должны быть двух видов на каждом поле: 1. Открывать ссылочный объект 2. Открывать новую форму с детализацией табличной части документа. Собственно ради второго пункта и писалась статья, в основном для себя, чтобы не забыть.

14.05.2019    18654    Viktor_Ermakov    8    

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

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

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

13.05.2019    9223    Evg-Lylyk    10    

Excel vs 1С: битва с неожиданным исходом Промо

Анализ учета Универсальные обработки Загрузка и выгрузка в Excel Финансовые Управленческие v8 1cv8.cf Россия Бесплатно (free)

Что лучше 1С или Excel? Разберемся, в казалось бы, очевидном, чтобы получить невероятное!

11.04.2019    35726    bolefirenko    116    

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

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

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

13.05.2019    6307    Serge R    5    

Оперативная доработка отчетов без обновления конфигурации или расширения

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

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

12.05.2019    4521    samvani    0    

Автоматизация печатной формы (автоформирование табличного документа на основе любой таблицы значений)

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

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

18.04.2019    3603    NeSPEC    0    

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

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

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

16.04.2019    19876    m-rv    17    

Добавление возможности подключения внешних отчетов и обработок к объектам конфигурации при помощи расширения

Универсальные функции v8::УФ ERP2 Бесплатно (free)

Часто приходится сталкиваться с тем, что необходимо внести изменения в типовую конфигурацию, но очень не хочется снимать её с поддержки. Для этого в 1С существует ряд инструментов. Эта короткая статья посвящена тому, как подучить возможность подключения внешних отчетов к объекту конфигурации при помощи расширения на примере 1С:ERP Управление предприятием 2 (проверено на 1С:ERP Управление предприятием 2 (2.4.6.230)).

15.04.2019    4458    user995537    0    

Выбор периода на управляемой форме почти как на обычных формах

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

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

26.03.2019    8099    independ    8    

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

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

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

01.06.2018    30001    m-rv    21