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

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

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

Пример галочка флажок динамический список ввод пометка выбор данные запрос

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

Итак, исходные данные:

Для примера нам понадобится любая конфигурация (хоть созданная с нуля) со справочником "Номенклатура". Остальное не важно.

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

Создаем внешнюю обработку. Размещаем на ней реквизит с типом "Динамический список" и устанавливаем галочку "Произвольный запрос"

Нажимаем на "Открыть" рядом с настройкой списка и устанавливаем запрос. Запрос выглядит следующим образом:

ВЫБРАТЬ
	Номенклатура.Ссылка,
	Номенклатура.Ссылка В (&ВыбраннаяНоменклатура) КАК Пометка
ИЗ
	Справочник.Номенклатура КАК Номенклатура

Добавляем на форму список и его реквизиты "Пометка", "Ссылка"

В поле "Пометка" устанавливаем следующие свойства элемента:

  • Вид - Поле картинки
  • Положение заголовка - Нет
  • Картинка значений - Наша картинка с галочками
  • Гиперссылка ячейки - Да

Для элемента формы "Список" установите событие "Выбор" с названием процедуры "СписокВыбор".

Скопируйте код ниже в модуль формы:

&НаКлиенте
Перем ВыбраннаяНоменклатура; //Массив, хранящий отмеченную галочками номенклатуру для отображения в списке

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

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

&НаКлиенте
Процедура СнятьПометку(Номенклатура)
	Индекс = ВыбраннаяНоменклатура.Найти(Номенклатура);
	Если Индекс >= 0 Тогда
		ВыбраннаяНоменклатура.Удалить(Индекс);
	КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ПоставитьПометку(Номенклатура)
	Индекс = ВыбраннаяНоменклатура.Найти(Номенклатура);
	Если Индекс = Неопределено Тогда
		ВыбраннаяНоменклатура.Добавить(Номенклатура);
	КонецЕсли;
КонецПроцедуры

Поздравляю, теперь в вашем динамическом списке есть галочки!

А теперь как всё это работает.

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

 
 Не совсем так

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

Еще один важный момент, без которого ничего не получится, это картинки флажков. Если вывести в списке обычное булево поле, то возникает ряд трудностей. Мало того, что галочки отрисовываются без чекбоксов, так еще и нажатие не срабатывает. Двойной клик по полю неудобен, а событие ПриАктивацииПоля не срабатывает если поле уже активировано. Для их решения, собственно, и сделаны манипуляции с полем картинки. На него навешивается гиперссылка и выбор будет срабатывать по однократному нажатию. Более того, у нас даже меняется курсор, показывая что чекбокс отзывается на нажатие.

Что имеем в сухом остатке:

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

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

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

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 5962 05.08.20 10:06 Сейчас в теме
Было бы логично добавить в эту же методику диапазонную (сразу для диапазона строк) установку/снятие пометок.
3. nekit_rdx 117 05.08.20 10:34 Сейчас в теме
(1) Это уже каждый решит для себя, что ему для конкретной задачи нужно :)
Реализовать установку/снятие пометок для нескольких строк сможет любой программист, а вот в статье подобные усложнения отвлекали бы от главного.
4. seregin_79 05.08.20 11:09 Сейчас в теме
(3) Тут то и начинаются самые "вкусности", например, установки отборов, т.е. ситуации типа:
1. Пользователь отметил, скажем пять строк.
2. Пользователь установил отбор, скрывший две или три отмеченных строки.
3. Т.к. такой механизм делается ради какой-либо последующей обработки, то возникает вопрос: Сколько, с точки зрения пользователя, отмечено строк и сколько строк будет обработано?

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

Механизм любопытный, но использовать стоит с оглядкой на возможные последствия.
5. nekit_rdx 117 05.08.20 11:42 Сейчас в теме
(4) Если подходить с точки зрения пользователя, то ему всё равно, таблица это или динамический список. Да, немного удобнее работать, отборы всякие можно ставить, но технические детали его не интересуют.

Представим что пользователь работает с табличной частью в каком-нибудь заказе. Он отмечает нужные строки галочками, прокручивает список вниз, что должно происходить с пометками которые уползли вверх? Существует ли Луна, когда на нее никто не смотрит?)

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

Но я при этом абсолютно согласен, что последствия стоит учитывать. Если последствия необратимы, то наверняка стоит предупреждать об этом, желательно со списком изменяемых объектов. А если что-то очень важное, то может стоит подумать над созданием мастера с несколькими шагами.
11. qwinter 624 06.08.20 15:37 Сейчас в теме
(4) так ничего не мешает получать ссылки, что с отборами, что без отборов. А какой вариант нужен надо с пользователями согласовывать.
13. seregin_79 06.08.20 16:51 Сейчас в теме
(11) Тут вопрос в том, что получение ссылок и расстановка отметок может быть проведена далеко не с теми отборами, с которыми пользователь будет проверять список перед тем как запустить обработку выбранных объектов и, соответственно будет видеть далеко не то же самое, что уйдет в обработку, а после этого расскажет разработчику все, что о нем думает, т.к. "программа мне показала вот это, а сделала вот то".
14. qwinter 624 06.08.20 19:36 Сейчас в теме
(13) В смысле "может быть проведена далеко не с теми отборами"? А если кто то вместо плюса минус поставит, то тоже будете рассказывать, что таких алгоритмов не надо писать? Я совершенно не понимаю какое это отношение имеет к обсуждаемой статье, тем более, что метод получение настроек списка один единственный, и ничего другого кроме настроек списка со всеми отборами из него не получишь.
16. seregin_79 07.08.20 08:59 Сейчас в теме
(14)
1.
то тоже будете рассказывать, что таких алгоритмов не надо писать?

Я совершенно не понимаю какое это отношение имеет к обсуждаемой статье

Вы внимательно читали написанное?

Если пользователь в процессе установки отметок или после установки отметок изменит отборы списка, то "картинка" изменится, соответственно, нужно при реализации механизма это учитывать. Наиболее простые варинты: при изменении отборов сбрасывать список отмеченных элементов или запрещать отборы.
18. qwinter 624 07.08.20 10:30 Сейчас в теме
(16) Я внимательно читал написаное.
Наиболее простые варинты: при изменении отборов сбрасывать список отмеченных элементов или запрещать отборы.
А вы в курсе существования функции ПолучитьИсполняемыеНастройкиКомпоновкиДанных() и программного вывода СКД в таблицу? Дополнительно создаем СКД с тем же запросом что и в списке, грузим туда отборы списка и отбор по помеченным, и получаем реальные видимые отмеченные элементы. Код элементарный.
19. seregin_79 07.08.20 10:40 Сейчас в теме
(18) А как существование этой функции опровергает мое утверждение, что это нужно учитывать при разработке?
2. frkbvfnjh 590 05.08.20 10:20 Сейчас в теме
Гениальное решение! Спасибо, что по делились. Я не знал что для ячейки можно выставить признак гиперссылки.
nekit_rdx; +1 Ответить
6. simonovich 05.08.20 13:00 Сейчас в теме
Решение крайне простое, но помогает решить многие задачи.
Большое спасибо за идею.
7. Andry.Boris 58 06.08.20 08:39 Сейчас в теме
Проверил, все отлично работает! Автор молодец!
Большое спасибо за идею.
8. XSlava 143 06.08.20 11:45 Сейчас в теме
Вопрос: в каких прикладных задачах необходимы "галочки" при использовании динамического списка?
9. nekit_rdx 117 06.08.20 11:59 Сейчас в теме
(8) Просто примеры:
1) Различные АРМ закупок, продаж, складские и т.д. Отмечаем галочками заказы, нажимаем кнопку "Можно отгружать", заказы пошли другому отделу
2) Форма выбора из справочника. Можно будет выбирать несколько элементов. Может заменить типовую обработку подбора в документ во всяких УТ, КА, ЕРП.
3) Любая внешняя обработка объектов, в которой перед обработкой может потребоваться их анализ. В динамическом списке, в отличии от обычной таблицы, пользователь может выводить новые колонки, отбирать по ним, сортировать и т.д. В общем, если у вас таблица больше, скажем, 100 элементов в ней уже можно запутаться, особенно если разработчик догадался вывести только наименование.
10. XSlava 143 06.08.20 15:29 Сейчас в теме
(9)По моему мнению у динамического списка для этого есть свойство "ВыделенныеСтроки". У выделенных строк есть выделение цветом на уровне платформы.
12. Dem1urg 316 06.08.20 16:41 Сейчас в теме
(10) Да есть, но с его помощью можно только выделить строки, и больше ничего. А описанный в статье прием позволяет реализовать любую логику. И любое количество состояний объекта, а не только "выделен" или "не выделен".
nekit_rdx; +1 Ответить
15. XSlava 143 07.08.20 08:05 Сейчас в теме
(12)Не совсем понятно "реализовать любую логику", выделение строк позволяет реализовать все то что было перечислено ранее. Назначение флага аналогично выделению строк и указывает на "выделен" или "не выделен".
20. EvgeniuXP 07.08.20 19:35 Сейчас в теме
(15) случайно щелкнул в другую строку и выбор пропал - начинай всё заново :)
21. XSlava 143 10.08.20 08:01 Сейчас в теме
(20)Это исключительно вопрос навыка работы с программой. Зато единообразно, во всех конфигурациях, флаг ко всем спискам не приделаешь.
22. SlavaKron 10.08.20 08:23 Сейчас в теме
Наверно, подобие альтернативного выделения строк можно сделать и через условное оформление и через упомянутое событие ПриПолученииДанных, но решение автора мне нравится больше. Оно простое и понятное. Следовало бы указать минус подобного решения - изменение текста запроса динамического списка "небезопасно" при программной реализации.
Замечания по поводу неопределенности при использовании отборов, по-моему, не обоснованы - поведение точно такое же как с отборами в таблице формы.
23. Бубузяка 62 10.08.20 18:04 Сейчас в теме
Хорошее решение, но мне не понравилось перечитывание данных списка.

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

&НаСервере
Процедура УстановитьСписокВыбранныхДокументов()
	
	ЭлементУсловногоОформления = Неопределено;
	Для каждого ЭлементОформления Из УсловноеОформление.Элементы Цикл
		Если ЭлементОформления.Представление = "Выделение подобранных" Тогда
			ЭлементОформления.Отбор.Элементы[0].ПравоеЗначение = Карзина;
		КонецЕсли;
		Если ЭлементОформления.Представление = "Выделение подобранных1" Тогда
			ЭлементОформления.Отбор.Элементы[0].ПравоеЗначение = Карзина;
		КонецЕсли; 
	КонецЦикла; 
	
КонецПроцедуры

&НаКлиенте
Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
	
	Если Поле = Элементы.СписокПоле1 ИЛИ Поле = Элементы.СписокПоле2 Тогда
		Ссылка = Элементы.Список.ТекущаяСтрока;
		СтандартнаяОбработка = Ложь;
		Запись = Карзина.НайтиПоЗначению(Ссылка);
		Если Запись = Неопределено Тогда
			Карзина.Добавить(Ссылка);
		Иначе
			Карзина.Удалить(Карзина.Индекс(Запись));
		КонецЕсли;
		УстановитьСписокВыбранныхДокументов();
	КонецЕсли;
	
КонецПроцедуры
Показать
24. Yashazz 3415 19.08.20 21:32 Сейчас в теме
Собрался было написать почти такую же публикацию, ан нет, опередили) Да, раскрыт один из возможных способов. Равно как и игры с СКД, и всякие эмуляции, и использование ПриПолученииДанныхНаСервере. Что ж, годно. Хорошо.
Оставьте свое сообщение

См. также

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

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

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

10.12.2016    37268    unichkin    74    

Рендеринг элементов управляемого интерфейса

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

Реализация отображения всего состояния формы проще, чем работа по изменениям. Однако использование идеи разделения алгоритмов на программные слои MVC и построения реактивных систем позволяет получить не только простые и масштабируемые решения, но и производительные интерфейсы. Рассмотрим примеры таких реализаций на основе использования фреймворка «Управление состоянием»: Информационная надпись, Заголовок формы, Свертываемая группа, Отключаемые панели.

22.09.2020    1643    kalyaka    5    

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

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

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

14.08.2020    2256    DrZombi    14    

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

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

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

20.07.2020    1362    biimmap    2    

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

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

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

15.10.2018    30135    tormozit    100    

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

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

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

13.07.2020    2995    plainer    11    

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

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

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

10.06.2020    2338    RotaninV    7    

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

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

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

12.05.2020    6015    SeiOkami    29    

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

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

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

20.09.2012    77896    tormozit    131    

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

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

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

08.05.2020    18794    user5300    16    

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

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

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

06.05.2020    4756    SeiOkami    3    

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

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

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

19.03.2020    4535    Igorro82IT    16    

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

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

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

11.07.2007    48269    tormozit    41    

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

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

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

12.02.2020    2604    ipoloskov    27    

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

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

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

04.02.2020    2953    shiaju    3    

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

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

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

16.01.2020    3937    VID1234    6    

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

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

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

10.09.2017    44674    tormozit    74    

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

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

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

15.01.2020    23168    John_d    22    

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

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

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

23.12.2019    12558    TitanLuchs    23    

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

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

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

24.10.2019    4385    darkultro37    4    

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

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

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

25.04.2019    16025    m-rv    2    

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

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

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

06.10.2019    11736    YPermitin    31    

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

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

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

01.10.2019    32684    Yashazz    50    

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

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

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

20.09.2019    5968    RomanCrow13    27    

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

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

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

16.04.2019    20159    m-rv    17    

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

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

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

18.09.2019    16979    feva    41    

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

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

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

06.09.2019    48834    rpgshnik    63    

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

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

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

05.09.2019    48661    ids79    54    

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

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

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

01.06.2018    30512    m-rv    21    

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

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

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

22.08.2019    14840    ids79    8    

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

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

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

08.08.2019    80292    ids79    49    

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

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

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

07.08.2019    5923    Nefilimus    16    

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

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

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

05.12.2017    28216    itriot11    34    

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

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

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

03.06.2019    6270    Yashazz    0    

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

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

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

24.05.2019    10601    login1020    7    

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

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

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

14.05.2019    19448    Viktor_Ermakov    8    

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

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

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

27.01.2016    76247    Serginio    108    

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

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

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

12.05.2019    4572    samvani    0    

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

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

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

18.04.2019    3650    NeSPEC    0    

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

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

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

16.04.2019    11030    milkers    9    

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

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

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

10.11.2018    34571    ids79    40    

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

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

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

26.03.2019    8273    independ    8    

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

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

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

25.03.2019    13309    ellavs    9    

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

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

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

22.03.2019    17712    ids79    16    

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

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

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

25.07.2018    29187    grumagargler    28    

Иерархия групп и элементов в форме списка справочника как в проводнике. УФ

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

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

20.03.2019    11547    rebuzx    12    

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

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

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

07.03.2019    53420    ids79    46    

Программное изменение управляемых форм

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

При адаптации типовых конфигураций 1С часто приходится изменять в 1С 8 управляемые формы. Такие адаптации сложно потом поддерживать при обновлении. Такие изменения приходится вносить вручную заново, перепроверять корректность изменений в каждом обновлении. И если таких изменений множество, то каждое обновление может представлять серьезные трудозатраты. Есть несколько решений, которые позволяют упростить поддержку и обновление измененных систем 1С. Одно из них – это программное изменение форм. Вести разработку в таком режиме получается немного дольше, чем прямое изменение формы. Но это хорошо компенсируется в дальнейшем при поддержке и обновлении системы 1С. На самом деле ничего сложного в этом нет, просто нужно привыкнуть. Рассмотрим на примерах, как делать доработку управляемых форм кодом в 1С.

05.03.2019    9831    user759624    10    

Ускоряем 1С: модули с повторным использованием возвращаемых значений Промо

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

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

04.09.2017    52528    m-rv    61    

Функциональные опции 1С 8.3 – все возможные варианты использования

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

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

22.02.2019    34360    ids79    14    

Информирование пользователя. Работа с объектом «СообщениеПользователю»

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

Различные варианты и нюансы использования объекта СообщениеПользователю и другие способы информирования пользователя: без привязки к какой-либо форме и с выводом сообщения в отдельном окне.

15.02.2019    51281    ids79    49