Редактирование табличной части объекта с помощью СКД

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

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

Обработка табличная часть СКД

112
Тема не нова - похожие решения были и на 8.0. К написанию статьи меня подтолкнул коллега, т.к. я это чудом не считаю. Несколько раз я видел тонны сложнейшего, и посему нерабочего кода, целью которого было сделать нечто похожее средствами, которые для этого не предназначены. В статье дан простейший пример, показывающий, как можно применять средства СКД для редактирования сложной структуры данных, например, табличных частей документов. В частности, рассмотрена работа с набором данных типа "Объект" и событием "Обработка расшифровки"

Описание проблемы и предпосылки

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

Реализация задачи

Нам понадобится: сам объект редактирования (в данном случае табличная часть), макет СКД, компоновщик настроек компоновки данных, элемент управления "поле табличного документа", обработчик "Обработка расшифровки".

Макет СКД представляет собой соединение двух наборов данных, каждый из которых имеет тип "Наборданных-объект":

 

 

Настройки вывода просты и примитивны - это обычная таблица с итогами:

 

В форме необходимо разместить следующие реквизиты:


В 

Основная идея:

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

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

 

СтандартнаяОбработка = Ложь;

ОбработкаРасшифровки = Новый ОбработкаРасшифровкиКомпоновкиДанных(ДанныеРасшифровки, Новый ИсточникДоступныхНастроекКомпоновкиДанных(СхемаСКД));

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

 

Производительность

Существует 2 способа непосредственного ввода значения при двойном клике по ячейки:

1) Через диалоговое окно методами ВвестиЗначение() или ВвестиЧисло()

- этот способ применен в данном примере.

Преимущества: не усложняет код, высокая производительность.

Недостатки: вылетает дополнительное окно ввода.

При таком способе ввода в каждой ячейке, как и при формировании обычного отчета на СКД, содержится лишь некий объект типа "ИдентификаторРасшифровкиКомпоновкиДанных", который по сути представляет собой число.

2) Непосредственно в ячейку, как в Excel.

Данный способ с применением СКД можно увидеть в ERP 2.0.

Преимущества: очень красиво, у неискушенных вызывает мгновенный вау-эффект, окон не вылетает.

Недостатки: низкая производительность, усложняет код. Нужно понимать, что при таком способе ввода в каждую ячейку придется помещать элемент управления "Поле ввода". Ячеек в поле табличного документа может быть несколько тысяч, т.е. несколько тысяч полей ввода. Вывод этого всего в поле табличного документа не будет быстрым даже в толстом клиенте.

Что еще?

1) Никто не запрещает размещать на форме стандарнтые настроки компоновщика настроек.

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

3) Группировка данных в таблице также может быть сколь угодно сложной, в зависимости от решаемой задачи.

4) Можно и нужно использовать всю мощь СКД и возможностей условного оформления.

112

Скачать файлы

Наименование Файл Версия Размер
Обработка "Редактирование табличной части в поле табличного документа"
.epf 16,24Kb
12.09.18
92
.epf 1.0 16,24Kb 92 Скачать

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

Комментарии
Избранное Подписка Сортировка: Древо
1. json 16.09.16 17:33 Сейчас в теме
Есть несколько вопросов:
1. При редактировании тч необходимо иметь возможность добавлять и удалять строки. В данной схеме это предусмотрено?
2. При обновлении курсор в табличном документе позиционируется на верхний левый угол. С этим что-нибудь делаете?
3. Обновляете ли итоги в подвале при вводе числовых значений?
2. Hatson 351 19.09.16 10:10 Сейчас в теме
(1) yurii_host,
1) Добавлять и удалять строки можно. Для этого придется реализовать простую кнопку. В данном примере такой кнопки нет, чтобы не захламлять код.

2) Это не так. Курсор остается на той ячейке, которую редактировали.

3) Итоги рассчитывает СКД. Я просто вызываю процедуру вывода результата в табличный документ после каждого ввода значения.
3. German_Tagil 7 21.09.16 05:32 Сейчас в теме
4. fomix 26 21.09.16 09:44 Сейчас в теме
К чему все это? Если только для какого-то извращения с расчетами в ТЧ, то понятно. А так... Может не так понял автора...
15. vasilev2015 1411 21.09.16 13:08 Сейчас в теме
(4) fomix, если ищете извращений, посмотрите типовой документ "табель" в ЗУП. Там бы это пригодилось. )))
5. Lukich66 82 21.09.16 09:57 Сейчас в теме
"как можно применять средства СКД для редактирования сложной структуры данных, например, табличных частей документов. "
Я увидел только редактирование табличного документа, а не табличной части(Товары,Услуги) документа
6. Diego_Iv 30 21.09.16 10:03 Сейчас в теме
При внедрении блока бюджетирования тоже встречался с подобной задачей. В табличную часть документа (бюджетная операция) необходимо было вводить следующие данные по периодам: Статья бюджета - Проект - Контрагент - Договор - Номенклатура - Сумма операции.
Хотелось чтобы суммы можно было вводить по колонкам, как в экселе. Причем количество периодов в документе могло быть неограниченным (7 дней недели, 30 дней месяца или все 365 дней года).
Предложенное решение с табличным документом, аналогичное упомянутому "Подрядчику строительства" заказчику не понравилось. Табличное поле документа не похожа на обычное в других документах 1С, не работают автоподборы и т.д.

Удалось решить так. По табличной части документа строил таблицу значений с нужным количеством колонок для каждого периода и эту ТЗ выводил в табличное поле документа.



TreeDogNight; Hatson; monkbest; Vlad_2008; gubanoff; +5 Ответить
11. Hatson 351 21.09.16 12:10 Сейчас в теме
(6) Diego_Iv, приложенные картинки не открываются. Может я не туда тыкаю?
16. Diego_Iv 30 21.09.16 13:20 Сейчас в теме
(11) ПКМ - Открыть изображение.

(10) Какие "группировочки и условное оформление" в табличном поле документа? Все эти украшательства решаются печатными формами и отчетами
gubanoff; +1 Ответить
20. Diego_Iv 30 21.10.16 13:23 Сейчас в теме
Попиарюсь...
Описанное в (6) выложил в виде отдельной публикации
http://infostart.ru/public/553075/
7. Трактор 1191 21.09.16 10:20 Сейчас в теме
>> Ячеек в поле табличного документа может быть несколько тысяч, т.е. несколько тысяч полей ввода
Я эту проблему решил так. Добавляю поле ввода в ячейку в момент активизации ячейки. Тормозов практически нет.
TreeDogNight; qwinter; afanasko; monkbest; ARL; Hatson; cleaner_it; +7 Ответить
14. Hatson 351 21.09.16 12:21 Сейчас в теме
(7) Трактор, понравилась идея. Пример кода можешь кинуть?
8. drmaxart 75 21.09.16 11:21 Сейчас в теме
Самое очевидное применение - удобное редактирование подчиненных по ключам связи табличных частей
9. Lancelot-2M 100 21.09.16 11:36 Сейчас в теме
Я такую тему делал) С копированием и добавлением строк и даже прямоугольных областей - вау-эффект был у моего начальника, а юзеры не пользуются)))

13. Hatson 351 21.09.16 12:17 Сейчас в теме
(9) Lancelot-2M, надо было сразу статью зафигачить )
10. gubanoff 46 21.09.16 12:10 Сейчас в теме
Создаем на форме таблицу значений (ТЗ), которую программно формируем как хотим. Нужно добавить только две процедуры - при открытии документа загрузить в эту ТЗ данные из ТЧ, при записи документа сохранить данные из ТЧ в ТЗ. Не очень сложная задача. В результате пользователь работает с привычной ему ТЧ (хотя на самом деле это ТЗ на форме, но визуально пользователь разницы не видит). Плюс в ТЗ можно добавлять обработчики событий изменения реквизитов, итоги по колонкам, подбор при вводе значений и т.п., т.е. будет полный аналог ТЧ.
12. Hatson 351 21.09.16 12:14 Сейчас в теме
(10) gubanoff, да, такими решениями кишат старые УТ. Всё здорово, только много говнокода и если пользователь попросит группировочки с итогами, условное оформление и т.д., то "добрый вечер".
21. user702069_savel777v2 03.03.17 15:54 Сейчас в теме
(12) Присоединяюсь.... Изначально сделал на ТЗ по найденной идее http://infostart.ru/public/547892/
Всё бы хорошо... но попросили Итоги по ТЗ.... вот тут я и встрял.. Потому оказалось проще переписать всё на СКД, как Hatson и предложил
немного возни с обработчиками, зато потом в доработке - сказка.... Внешний вид правил многократно, что на ТЗ вылилось бы в килотонны кода.
А на счет обработчиков сначала сделал в виде ВвестиЗначение, а завершилось вообще все на ФормеВвода...
Потому Автору - большая благодарность за идею!
17. Vlad_2008 12 21.09.16 13:38 Сейчас в теме
Во-во, а уж если нужны группировочки, то для этого есть Дерево и УО (в УФ)
gubanoff; +1 Ответить
18. simon_simon 1 26.09.16 09:40 Сейчас в теме
Немного не по теме статьи, но не так давно пришлось делать внешнюю печатную форму с использованием СКД. Данная печатная форма разработана для документа "Пересчет товаров" Розница, редакция 2.1 (2.1.9.20) . Не знаю как у кого, но у меня возникли проблемы найти пример в сети. Везде денег хотели.
По сути печатной формы: По заданию пользователей необходимо было сделать печатную форму с группировками по виду номенклатуры. Внутри группировок непосредственно сами номенклатурные позиции.
Прикрепленные файлы:
ВПФИнвентаризационнаяВедомостьУП.epf
19. monkbest 103 21.10.16 12:28 Сейчас в теме
В ЗУП 3.0 так реадктируется документ Табель при включенной функциАнальной опции наличия территорий выполнения работ. В этом случае там помимо 31 колонки на каждый день для ввода буквы и часов надо еще рисовать поля для указания периоды пребывания на удаленной территории. Т.е. информация мягко говоря не укалдывающаяся в ТЧ из за разнородности.

Второе ТабДок поддрежывает отображение тысяч строк и сотен колонок, а табличная часть в УФ умирает, а в веб-клиенте вообще падает со свякими ошибками javaSript`а
22. lopatin 484 14.03.17 16:45 Сейчас в теме
Есть пример редактирования прямо в ячейке? Без вывода окна?
23. sailor-cat 2 31.07.18 13:24 Сейчас в теме
(22)при активизации области:

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


Но вот как назначить элементу обработчики события, пока не могу сообразить.
24. lopatin 484 08.08.18 05:45 Сейчас в теме
(23) Я делал не при активизации, а обрабатывал табличный документ перед выводом на форму, в частности обходил все ячейки находил нужные мне и проставлял признак содержит значение:

Функция ОбновитьПредставлениеОтчета(ДанныеОтчета, ИсточникНастроек, ПредставлениеДанныхОтчета, УникальныйИдентификаторФормы) Экспорт

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

//...

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

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

	Возврат ЗначенияГруппировок;
	
КонецФункции // ПолучитьВсеЗначенияГруппировокОтчета()

Показать


В самом макете СКД надо области задать вывод расшифровки(см. вложенную картинку)
Прикрепленные файлы:
25. lopatin 484 08.08.18 05:48 Сейчас в теме
(23) Соответственно, чтобы отловить момент изменения значения и записать его в нужное место, определил событие табличного поля на форме - ПриИзмененииСодержимогоОбласти, проверяю расшифровку и если область та что мне нужна записываю значение:

&НаКлиенте
Процедура ПредставлениеДанныхОтчетаПриИзмененииСодержимогоОбласти(Элемент, Область)
	ПредставлениеДанныхОтчетаПриИзмененииСодержимогоОбластиНаСер­вере(Область.Расшифровка, Область.Значение);
КонецПроцедуры

&НаСервере
Процедура ПредставлениеДанныхОтчетаПриИзмененииСодержимогоОбластиНаСер­вере(Расшифровка, Значение)
	Если НЕ Расшифровка = Неопределено Тогда
		Данные = ПолучитьИзВременногоХранилища(ДанныеРасшифровки);
		ЗначенияРасшифровки = ВыводФинансовыхОтчетов.ПолучитьВсеЗначенияРасшифровки(Данные.Элементы[Расшифровка]);		
		ЗначенияГруппировок = ВыводФинансовыхОтчетов.ПолучитьВсеЗначенияГруппировок(Данные, Расшифровка, "Значение", Новый Структура("Показатель,Период"));
		Если ЗначенияРасшифровки.Свойство("Значение") Тогда
			ЗаписатьЗначениеПоказателя(ЗначенияГруппировок.Показатель, Значение);
		КонецЕсли; 
	КонецЕсли; 
КонецПроцедуры
Показать
26. sailor-cat 2 08.08.18 06:41 Сейчас в теме
(25) Согласен, можно и так, но:
1. Как отмечалось выше, добавлять элементы при компоновке результата может быть весьма "дорого".
2. Меня интересовали обработчики других событий, например "Начало выбора". Поэтому и пытался все перенести на форму.
27. Hatson 351 12.09.18 19:52 Сейчас в теме
Добавил кнопку "Добавить строку" и обработка подорожала ))
Оставьте свое сообщение

См. также

Консоль запросов с перехватом отчетов СКД и запросов 12

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8::Запросы v8::СКД 1cv8.cf Россия Абонемент ($m) Консоль запросов

Доработанная консоль запросов с автоматическим заполнением текста запроса и всех параметров на основании объекта Запрос, полученного в "Конфигураторе" или перехваченного встроенного/внешнего отчёта СКД.

2 стартмани

29.09.2019    1190    5    strek_ivan    3       

Расчет сложных итогов СКД 87

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf ОС Абонемент ($m) Практика программирования Разработка

Малоизвестный прием для расчета итогов в отчетах на СКД.

1 стартмани

05.08.2019    4504    1    masterkio    7       

Просмотр и анализ структуры базы данных (отчет на СКД) 93

Отчеты и формы Системный администратор Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Windows Абонемент ($m) Инструментарий разработчика

Отчет для просмотра и анализа структуры базы данных с поддержкой файловых баз (ограниченный режим), а также баз на SQL Server и PostgreSQL.

2 стартмани

24.07.2019    4465    65    YPermitin    21       

Вам нравятся запросы в 1С? 13

Инструменты и обработки Программист Конфигурация (md, cf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования Разработка

Речь не только о том, что простейший запрос с "легальным" оформлением растянется на пол-экрана, речь еще обо всем, что нужно написать "в нагрузку" к тексту запроса. Все эти "Новый Запрос", "УстановитьПараметр" и последующие пляски с обработкой результата... Пора с этим заканчивать!

1 стартмани

03.07.2019    8934    1    m-rv    73       

Многоуровневая нумерация в отчете СКД (программный вывод) 38

Статья Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

01.07.2019    2541    6    lmnlmn    7       

Модель объекта 6

Инструменты и обработки Программист Конфигурация (md, cf) v8 Абонемент ($m) Инструментарий разработчика

Подсистема позволяет описать модель данных объекта, где описана зависимость между реквизитами, и затем использовать эту модель в разных сценариях работы с объектом. Версия платформы: 8.3.6 и выше. С небольшими доработками будет работать на 8.2.

1 стартмани

30.06.2019    2404    1    vadim1980    0       

Иерархическая нумерация в отчете СКД с помощью макета поля 23

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка

Представляю Вашему вниманию вариант решения задачи нумерации строк иерархического отчета на СКД.

1 стартмани

28.06.2019    2533    3    Isonic    14       

Проверка несуществующих полей в настройках СКД 7

Инструменты и обработки Программист Стажер Внешняя обработка (ert,epf) v8 v8::СКД ERP2 УТ11 КА2 Абонемент ($m) Практика программирования Разработка Работа с интерфейсом

Обработка находит все поля настроек СКД, которые утратили свою актуальность Подходит для УТ 11, ERP, КА 2.

1 стартмани

20.06.2019    1326    1    MuI_I_Ika    0       

Вывод таблицы значений в табличный документ через СКД 9

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика

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

1 стартмани

20.06.2019    1348    7    servs    3       

Простые примеры сложных отчетов на СКД 239

Статья Программист Архив с данными v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

12.06.2019    11066    9    Hatson    22       

Поле "Отбор" в управляемой форме используя СКД 8

Отчеты и формы Программист Внешняя обработка (ert,epf) v8::УФ v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка Работа с интерфейсом

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

1 стартмани

17.05.2019    2186    2    artms    0       

Шаблон отчета, обычное приложение. Отображает на форме: параметры, отбор, варианты настроек, загрузку элементов отбора из файла 5

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД УПП1 Абонемент ($m) Инструментарий разработчика

Шаблон отчета с формой для обычного приложения. Позволяет отображать на форме: параметры, отбор, варианты настроек, загрузку в левое значение отбора список элементов из файла (проверено на Управление производственным предприятием, редакция 1.3 (1.3.61.2) )

1 стартмани

22.04.2019    1355    6    user995537    0       

Вывод вариантов СКД в таблицы на управляемой форме 25

Статья Программист Внешняя обработка (ert,epf) v8 v8::УФ v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Работа с интерфейсом

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

05.04.2019    3732    artkor    1       

Как в СКД по щелчку на какой-либо ячейке в отчете получить значение другой ячейки 102

Статья Программист Стажер Архив с данными v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка

Задача: по щелчку на ячейке в определенной колонке в таблице отчета нужно получить значение ячейки из другой колонки в этой же строке и передать его в другой отчет (т.е. сделать расшифровку значения другим отчетом).

1 стартмани

27.03.2019    6346    10    ellavs    11       

Безопасная работа с транзакциями во встроенном языке 183

Статья Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Разработка

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

1 стартмани

25.03.2019    13157    7    tormozit    35       

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

Инструменты и обработки Программист Архив с данными v8 v8::СКД 1cv8.cf Россия Абонемент ($m) Инструментарий разработчика Практика программирования Разработка

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

1 стартмани

21.03.2019    1947    5    pavel_pss    0       

Шаблон отчета СКД (обычные формы) 10

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика

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

1 стартмани

21.03.2019    2391    18    Смешной 1С    4       

Пример использования СКД и данных расшифровки на мобильной платформе 7

Статья Программист Внешняя обработка (ert,epf) v8 v8::Mobile v8::СКД 1cv8.cf Россия Android Абонемент ($m) Практика программирования Разработка

СКД в мобильном приложении и меню действий на основе данных расшифровки (отчет, совместимый с мобильной платформой 8.3.13.45).

1 стартмани

12.03.2019    2057    2    majoram    0       

Улучшенный шаблон отчёта СКД ОФ (обычные формы), подобный стандартной управляемой форме отчёта 3

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД БП2.0 ЗУП2.5 УТ10 УПП1 Абонемент ($m) Инструментарий разработчика

Вашему вниманию предлагается улучшенный шаблон отчёта СКД, реализованный на обычных формах. Лаконичный и функциональный, весь необходимый минимум для управления отчётом вынесен на форму отчёта, что избавляет рядовых пользователей от необходимости лезть внутрь настроек отчёта. Элементы формы сделаны "резиновыми", что позволяет не дорабатывать форму отчёта, если в нём прибавилось отборов или параметров (пользователь сам при необходимости растянет область отборов или параметров). У пользователя есть возможность скрывать/отображать на форме настройки параметров или отборов. Форма автоматически запоминает состояние отображения параметров и отборов. Имеется возможность сохранять отчёт в файлы распространённых форматов (Excel2007, Excel, PDF, Word2007, ODS, HTML, Текстовый файл). Так же на панель выведена кнопка восстановления стандартных настроек отчёта.

2 стартмани

25.02.2019    2164    4    Eugen-S    0       

Вывод характеристик и их значений в динамический список 0

Инструменты и обработки Программист Архив с данными v8::УФ v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка

Если в запросе динамического списка используется конструкция {ХАРАКТЕРИСТИКИ ...}, то как вывести на форму колонки с характеристиками?

1 стартмани

22.02.2019    1892    kasper076    3       

Схемы показателей. Объединение наборов СКД. Программное формирование отчета 11

Отчеты и формы Программист Архив с данными v8 v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика

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

2 стартмани

11.02.2019    3289    4    MaxxiMiliSan    0       

Сквозной рейтинг по иерархии в отчете на СКД 6

Статья Программист Архив с данными v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Разработка

Сквозная нумерация (рейтинг) по группам и элементам справочника в отчете СКД согласно убыванию количества/суммы и т.д.

1 стартмани

07.02.2019    2521    MaxxiMiliSan    2       

Коннектор: удобный HTTP-клиент для 1С:Предприятие 8 509

Инструменты и обработки Программист Конфигурация (md, cf) v8 1cv8.cf Абонемент ($m) Практика программирования Внешние источники данных WEB Универсальные функции Инструментарий разработчика Универсальные обработки

Коннектор - библиотека для работы с HTTP запросами. Библиотека берет на себя всю рутину работы с HTTP запросами. Буквально в одну строку можно получать данные, отправлять, не заботясь о необходимости конструирования URL, кодирования данных и т.п.

1 стартмани

31.01.2019    24793    242    bonv    102       

Редактор объектов информационной базы 8.3 35

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРОбъектУпр) для редактирования реквизитов и табличных частей объектов информационной базы, редактирование движений документов. Доступ ко всем реквизитам объектов, есть возможность выгрузки и загрузки данных (объекты и движения документов) через XML. Платформа 8.3, управляемые формы. Версия 1.1.0.31 от 02.10.2019

2 стартмани

23.01.2019    8419    123    ROL32    21       

Генерация внешнего отчета на основе варианта в "классической" консоли СКД 9

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Россия Абонемент ($m) Инструментарий разработчика

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

1 стартмани

16.01.2019    2672    11    maxx    21       

Особенность встроенной функции Представление() в СКД [поход на грабли] 9

Статья Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Абонемент ($m) Практика программирования Адаптация типовых решений

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

1 стартмани

15.01.2019    4015    Dementor    5       

Модуль, реализующий хранение настроек отчетов СКД в типовом регистре "Сохраненные настройки" 5

Инструменты и обработки Программист Архив с данными v8 v8::СКД КА1 БП2.0 ЗУП2.5 УТ10 БП1.6 Абонемент ($m) Практика программирования

Модуль, обеспечивающий хранение настроек отчетов на СКД в типовом регистре "Сохраненные настройки", присутствующем в конфигурациях УПП 1.2, 1.3, УТ 10.3, БП 2.0 и т.д.

1 стартмани

12.01.2019    2871    lunjio    0       

Конструктор мобильного клиента Simple WMS Client: способ создать полноценный ТСД без мобильной разработки. Теперь полноценный оффлайн (обновление от 15.08.19)! 168

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

Simple WMS Client – это визуальный конструктор мобильного клиента для терминала сбора данных(ТСД) или обычного телефона на Android. Приложение работает в онлайн режиме через интернет или WI-FI, постоянно общаясь с базой посредством http-запросов (вариант для 1С-клиента общается с 1С напрямую как обычный клиент). Можно создавать любые конфигурации мобильного клиента с помощью конструктора и обработчиков на языке 1С (НЕ мобильная платформа). Вся логика приложения и интеграции содержится в обработчиках на стороне 1С. Это очень простой способ создать и развернуть клиентскую часть для WMS системы или для любой другой конфигурации 1С (УТ, УПП, ERP, самописной) с минимумом программирования. Например, можно добавить в учетную систему адресное хранение, учет оборудования и любые другие задачи. Приложение умеет работать не только со штрих-кодами, но и с распознаванием голоса от Google. Это бесплатная и открытая система, не требующая обучения, с возможностью быстро получить результат.

5 стартмани

09.01.2019    19569    207    informa1555    167       

Отладка сложных отчетов на СКД 137

Отчеты и формы Программист Расширение (cfe) v8 v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования

Расширение для отладки сложных отчетов на СКД (в т.ч. для собираемых программно "на лету") и быстрого перехода к отладке таких отчетов в консоли запросов и отчетов на СКД.

1 стартмани

28.12.2018    13104    53    maxx    42       

Шаблон кросс-таблицы с иерархией на СКД 12

Отчеты и формы Программист Внешний отчет (ert,erf) v8::БУ v8::СКД БП3.0 Россия Абонемент ($m) Инструментарий разработчика Практика программирования

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

1 стартмани

22.12.2018    3946    5    wizard.ilmir02    2       

Схемы макетов оформления СКД 23

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика Работа с интерфейсом

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

1 стартмани

18.12.2018    4540    15    dsfix    12       

СКД. Сортировка 31

Статья Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования

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

1 стартмани

03.12.2018    5160    5    slimper    20       

Структура хранения данных 3

Отчеты и формы Программист Внешний отчет (ert,erf) v8::УФ v8::СКД 1cv8.cf Абонемент ($m) Инструментарий разработчика

Отчет на СКД выводит информацию о структуре хранения объектов в базе данных.

1 стартмани

30.11.2018    2519    9    mamba    0       

Объединение нескольких печатных форм в один табличный документ 26

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

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

1 стартмани

17.11.2018    6190    4    echo77    3       

Передача набора данных типа Объект в отчет СКД 5

Инструменты и обработки Программист Внешний отчет (ert,erf) v8 v8::УФ v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования

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

1 стартмани

12.11.2018    13665    4    evgen7938    3       

Отчет для демонстрации работы с программной расшифровкой СКД 8

Отчеты и формы Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования

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

1 стартмани

08.11.2018    3736    6    budidich    0       

Группировка измерений в заголовках СКД 62

Статья Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

Методика создания общей шапки над измерениями в таблице созданной при помощи СКД. Без всякого кода. Только штатными средствами.

1 стартмани

07.11.2018    9840    39    dusha0020    11       

Навигатор по конфигурации базы 1С 8.3 100

Инструменты и обработки Программист Пользователь Внешняя обработка (ert,epf) v8 v8::УФ 1cv8.cf Россия Windows Абонемент ($m) Инструментарий разработчика Универсальные обработки

Универсальная внешняя обработка (СДРНавигаторУпр) для просмотра метаданных конфигураций баз 1С 8.3. Отображает свойства и реквизиты объектов конфигурации, их количество, основные права доступа и т.д. Отображаемые характеристики объектов: свойства, реквизиты, стандартные рекизиты, реквизиты табличных частей, предопределенные данные, регистраторы для регистров, движения для документов, команды, чужие команды, подписки на события, подсистемы. Отображает структуру хранения объектов базы данных, для регистров доступен сервис "Управление итогами". Небольшой набор сервисных функций для повседневной работы. Для программистов и пользователей. Платформа 8.3, управляемые формы. Версия 1.1.0.43 от 01.10.2019

3 стартмани

28.10.2018    14500    176    ROL32    43       

И снова группировка столбцов в СКД 6

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД УТ11 Россия Абонемент ($m) Практика программирования

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

1 стартмани

23.10.2018    5235    vasilievil    9       

Параметризованные заголовки полей СКД 24

Отчеты и формы Программист Внешний отчет (ert,erf) v8 v8::СКД 1cv8.cf Абонемент ($m) Практика программирования

Доработанный шаблон типового отчета, который это позволяет менять заголовки полей в зависимости от значений параметров.

2 стартмани

21.09.2018    5077    3    echo77    3       

Работа с публикациями "Инфостарт" 13

Инструменты и обработки Программист Архив с данными v8 УУ Абонемент ($m) Практика программирования О сообществе WEB

Работа с рублевыми публикациями на сайте "Инфостарт": ведение клиентов, заказов, обновление файлов публикации, рассылка обновлений.

1 стартмани

13.09.2018    8104    10    RocKeR_13    12       

Вывод результата отчета СКД в разные табличные документы 11

Отчеты и формы Программист Внешний отчет (ert,erf) v8::СКД 1cv8.cf Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

21.08.2018    6779    5    Dipod    4       

Управляемая консоль запросов, отчетов 3.7.3 (расширение, внешняя обработка) 356

Инструменты и обработки Программист Архив с данными v8 v8::УФ v8::Запросы v8::СКД 1cv8.cf Абонемент ($m) Консоль запросов

Работа с запросом и СКД, Полная поддержка пакетных запросов, временных таблиц, Выполнение в фоне (с возможностью отмены), Сравнение результатов, текстов, Разбор структуры запроса в виде дерева, Анализ плана запроса, Групповая обработка

1 стартмани

14.08.2018    48495    1080    Evg-Lylyk    409       

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

Отчеты и формы Программист Архив с данными v8 v8::УФ v8::СКД Windows Абонемент ($m) Практика программирования

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

1 стартмани

12.08.2018    3919    25    MaxCreator    0       

Позиционирование в помещении с помощью нейросети по сигналу Wi-Fi. Интерактивная карта склада в 1С с показом позиции 62

Инструменты и обработки Программист Бизнес-аналитик Приложение (apk) v8 Windows Абонемент ($m) Инструментарий разработчика Практика программирования

Данная публикация содержит в себе редактор и интерактивную карту склада или иного помещения, на которой в реальном времени отображается позиция устройства, координаты которого вычисляются по уровням сигнала нескольких роутеров Wi-Fi. В статье и приложенным к ней разработкам предлагаются инструменты и методика для реализации вычисления точной геопозиции внутри помещений с помощью нейронной сети. Конфигурация написана на релизе 1С:Предприятие 8.3.12.1412, клиентское приложение имеет минимальный уровень совместимости SDK -16.

5 стартмани

09.08.2018    14636    23    informa1555    26       

Работа с данными выбора 38

Инструменты и обработки Программист Архив с данными v8 Россия Абонемент ($m) Практика программирования Работа с интерфейсом

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

1 стартмани

17.07.2018    19529    13    kalyaka    15       

ВСТАВИТЬ В Справочник.Номенклатура (Код, Наименование) ЗНАЧЕНИЯ ("001", "Новый товар") 105

Инструменты и обработки Программист Внешняя обработка (ert,epf) v8 v8::Запросы 1cv8.cf Абонемент ($m) Практика программирования

Вас не обманывают ваши глаза, это запрос на изменение данных! И это работает без прямого доступа к БД, регистрации и смс.

1 стартмани

01.06.2018    18909    86    m-rv    57       

Вывод товаров в СКД как на весах в Ашане 59

Статья Программист Внешняя обработка (ert,epf) v8::СКД 1cv8.cf Розничная торговля Абонемент ($m) Практика программирования

Небольшая хитрость, которая позволяет выводить информацию на СКД плиткой.

2 стартмани

23.05.2018    10496    7    Kutuzov    14