Хранение настроек внешних отчетов на СКД в 1С

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

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

175
Код для сохранения и восстановления настроек внешних отчетов на СКД в УПП 1.3, БП 1.6, 2.0, УТ 10.3, КА 1.1

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

 

Для хранения настроек отчетов в УПП существуют два метаданных. Регистр сведений "Сохраненные настройки" и одноименный справочник.

Структура метаданных

Их структура похожа, в обоих есть информация:

  1. О пользователе, который может использовать данную настройку
  2. "СохранятьАвтоматически" - сохранять настройку при закрытии
  3. "ИспользоватьПриОткрытии" - при открытии будет выведен отчет по настройке с данной галочкой. Галочка может стоять только у одной настройки к каждому отчету. Если ни у одной настройки галочки нет, то будет выведена типовая настройка СКД.
  4. Реквизит с типом "Хранилище значения" (в справочнике реквизит "ХранилищеНастроек", в регистре сведений ресурс "СохраненнаяНастройка"). В данном объекте собсвенно и хранятся настройки. Как известно хранилище значения может хранить любое значение.

 

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

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

 

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

 

Итак. На форму надо добавить кнопки сохранения и восстановления значений настроек Сохранить / восстановить настройки, добавить процедуры к ним, и написать код в процедуры "ПриОткрытии" и "ПриЗакрытии".

//////////////////////////////////////////////////////////////////////////////////////

Процедура ДействияФормыСохранитьНастройки(Кнопка)

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

   
СтруктураНастройки.Вставить("Пользователь", глЗначениеПеременной("глТекущийПользователь"));
   
СохраненнаяНастройка = Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки());
   
СтруктураНастройки.Вставить("СохраненнаяНастройка", СохраненнаяНастройка);

   
ВозвращаемаяСтруктура = УниверсальныеМеханизмы.СохранениеНастроек(СтруктураНастройки);

    Если
ВозвращаемаяСтруктура <> Неопределено Тогда
       
мТекущаяНастройка = ВозвращаемаяСтруктура;
    Иначе
       
мТекущаяНастройка = СтруктураНастройки
;
    КонецЕсли;

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

 

Сохранение настройки

//////////////////////////////////////////////////////////////////////////////////////

Процедура ДействияФормыВосстановитьНастройки(Кнопка)

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

   
ВозвращаемаяСтруктура = УниверсальныеМеханизмы.ВосстановлениеНастроек(СтруктураНастройки);

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

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

Восстановление настройки 

//////////////////////////////////////////////////////////////////////////////////////

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

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

//////////////////////////////////////////////////////////////////////////////////////

Процедура ПриЗакрытии()

    Если
мТекущаяНастройка <> Неопределено И мТекущаяНастройка.НаименованиеНастройки <> Неопределено
        И
мТекущаяНастройка.Свойство("СохранятьАвтоматически") И мТекущаяНастройка.СохранятьАвтоматически Тогда

       
ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
        Если
ТекПользователь<> мТекущаяНастройка.Пользователь Тогда
           
Ответ = Вопрос("Вы восстановили настройку другого пользователя, сохранить ее в
            |ваших настройках?"
, РежимДиалогаВопрос.ДаНет);
            Если
Ответ = КодВозвратаДиалога.Да Тогда
                Если
ВвестиСтроку(мТекущаяНастройка.НаименованиеНастройки,
                   
"Укажите наименование сохраняемой настройки") Тогда
                   
мТекущаяНастройка.Пользователь = ТекПользователь;
                   
УниверсальныеМеханизмы.СохранитьНастройку(мТекущаяНастройка);
                КонецЕсли;
            КонецЕсли;
        Иначе
           
УниверсальныеМеханизмы.СохранитьНастройку(мТекущаяНастройка);
        КонецЕсли;
    КонецЕсли;

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

//////////////////////////////////////////////////////////////////////////////////////

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



 
175

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

Комментарии
Избранное Подписка Сортировка: Древо
1. Kochevnic 14.11.11 22:11 Сейчас в теме
2. mikl79 107 15.11.11 08:02 Сейчас в теме
3. MYRZILKA123 2 15.11.11 15:19 Сейчас в теме
4. Il 16 16.11.11 08:28 Сейчас в теме
5. netserfer 84 16.11.11 08:52 Сейчас в теме
Всё гениальное просто, всё сложное не нужно (с)М.Калашников :)
6. ligailnet 16.11.11 09:15 Сейчас в теме
7. Dunga 33 16.11.11 09:41 Сейчас в теме
8. Dunga 33 16.11.11 09:42 Сейчас в теме
А как хранить настройки в файле в отчетах не СКД.
10. Istur 1420 16.11.11 11:23 Сейчас в теме
(8) Полностью аналогично. Настойки хранятся в ресурсе "СохраненнаяНастройка" с типом "Хранилище значения". У меня хранится там КомпоновщикНастроек.Настройки, но там может храниться все, что угодно. Структура, ТаблицаЗначения и т.д. По коду мне кажется вполне должно быть понятно, где и что заменять.
9. psamt1k 16.11.11 10:18 Сейчас в теме
Как любит говорить один мой друг: то, что дохтур прописал!
Спасибо!
11. echo77 1093 16.11.11 18:19 Сейчас в теме
Экспортные процедуры типовых отчетов на СКД:
СохранитьНастройку()
ПрименитьНастройку()

не спасут отца русской демократии?
12. Istur 1420 16.11.11 18:31 Сейчас в теме
(11) Да, можно было бы брать и оттуда, тогда бы сохранение происходило в справочник. Но там не чисто эти 2 процедуры, а из них вызываются еще и другие процедуры. И плюс открытие и закрытие, надо смотреть как там. Реализация через регистр мне показалась проще, чем вычленять код из модуля. В данном модуле все сделано универсально, поэтому брать что-либо достаточно сложно, пришлось бы много удалять.
13. echo77 1093 16.11.11 18:47 Сейчас в теме
(12) я не пойму - вы свою подсистему пишете с нуля? Или же создаете функционал сохранения/загрузки настроек для типовых отчетов?
14. Istur 1420 16.11.11 18:48 Сейчас в теме
(13) второе. Точнее нет, функционал загрузки/сохранения для внешних отчетов, не типовых.
15. echo77 1093 16.11.11 19:25 Сейчас в теме
(14) Судя по скриншотам(панель ваиратов отчета и т.д.) вы делаете это для своих отчетов постронные на базе шаблона типового отчета (Статья ИТС "Разработка отчетов при помощи универсального механизма "Шаблон типового отчета"")
16. Istur 1420 16.11.11 20:43 Сейчас в теме
(15) нет. панели вариантов там нет. там есть самая обычная командная панель, на которую вынесены кнопки сохранения и восстановления настроек. второе. я не делаю массово это для своих отчетов. один раз на работе нужно было так сделать, на форме должен быть только отбор, поэтому шаблон СКДшный использовать нельзя было. а так у нас на работе есть сделанный на основе типового шаблон отчета, мы используем всегда его. Да и другим рекомендую строить отчеты на шаблоне.. вот не знаю как его назвать. На нем еще отчет построен "План-фактный анализ себестоимости выпуска" в УПП. Поэтому даже не знаю когда придется так делать еще раз. Но думаю рано или поздно придется. На ИТС статью не читал, завтра на работе почитаю. Будет обидно, если там уже все описано.
17. sanjabor 16 17.11.11 10:23 Сейчас в теме
Если отчет разрабатывается с нуля, можно за основу взять шаблон типового отчета с ИТС. Там в основном нужно только свою СКД и настройки вывода задать.

ЗЫ Описанные настройки можно применять и к внешним обработкам. Плюсы - те же.
18. Istur 1420 17.11.11 10:36 Сейчас в теме
(17) Я как раз выше распинался что вполне прекрасно знаю о этом отчете. И там же написал, что для решения той конкретной задачи его использование не подходило.
19. angellbroken 21.11.11 11:20 Сейчас в теме
Помоему очень удобная штука)
20. opiumdx 23.11.11 07:46 Сейчас в теме
21. Il 16 24.11.11 04:25 Сейчас в теме
И еще плюсик - можно настройки отчета копировать под конкретного пользователя!
22. dtitov 28.11.11 11:10 Сейчас в теме
23. Silvice 02.12.11 19:54 Сейчас в теме
24. angler225 99 24.01.12 16:33 Сейчас в теме
25. lsp71 27.02.12 11:16 Сейчас в теме
1. Спасибо за идею и за открытый код.
2. Интересно, зачем 1С создала 2 разных механизма для одной и той же цели (сохранение/восстановление настроек)?
26. l-Rain 12.11.12 13:33 Сейчас в теме
Спасибо большое! Пригодилось.
27. red80 12.11.12 13:38 Сейчас в теме
Полезнее было бы поискать точки входа в типовые механизмы сохранения/восстановления настроек и описать способы работы с ними, тогда не важно было бы как что реализовано.
28. Alex141516 11.03.13 17:02 Сейчас в теме
хочу предупредить на всякий случай, а то в инете есть люди которые мучаются вопросом типа почему в запросе есть поле, а в скд оно не выводится (хотя в настройках самого скд оно есть)? в случае если отчет или обработка с использованием скд у вас дорабатывается в процессе, чтобы не попасть в полные непонятки - нужно сбрасывать настройки пользователя после обновления отчета, можно не все, а именно то что касается изменений, я в отчете делаю переменную "версия отчета" и если она у пользователя не совпадает с текущей - сбрасываю настройки пользователя и уведомляю его.
29. unoDosTres 27.05.13 16:48 Сейчас в теме
спасибо за открытый код, весьма эффективное решение
30. ogion 26.09.13 11:04 Сейчас в теме
2 дня искал и вот оно! Спасибо, добрый человек.
31. KlintuhovDE 25.11.13 15:33 Сейчас в теме
Спасибо автору! пригодилось )
Прикрепленные файлы:
32. TeMochkiN 29.11.13 12:35 Сейчас в теме
Замечательное решение, только у меня при закрытии формы автоматически почему-то не сохраняет настройки либо некорректно сохраняется, а при открытии замечательно автоматически восстанавливается настройка, сохраненная вручную
релиз УПП 1.3.44.1
ща поковыряюсь конечно в чем может быть дело, может я что-то упустил
33. TeMochkiN 29.11.13 12:53 Сейчас в теме
Во, добавил одну строчку и заработало:

Процедура ПриЗакрытии()
	Если мТекущаяНастройка <> Неопределено И мТекущаяНастройка.НаименованиеНастройки <> Неопределено
		И мТекущаяНастройка.Свойство("СохранятьАвтоматически") И мТекущаяНастройка.СохранятьАвтоматически Тогда
		
		//Добавленная мною строка
		мТекущаяНастройка.Вставить("СохраненнаяНастройка", Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки()));
	
		ТекПользователь = глЗначениеПеременной("глТекущийПользователь");
		Если ТекПользователь <> мТекущаяНастройка.Пользователь Тогда
			Ответ = Вопрос("Вы восстановили настройку другого пользователя, сохранить ее в
			|ваших настройках?", РежимДиалогаВопрос.ДаНет);
			Если Ответ = КодВозвратаДиалога.Да Тогда
				Если ВвестиСтроку(мТекущаяНастройка.НаименованиеНастройки,
					"Укажите наименование сохраняемой настройки") Тогда
					мТекущаяНастройка.Пользователь = ТекПользователь;
					УниверсальныеМеханизмы.СохранитьНастройку(мТекущаяНастройка);
				КонецЕсли;
			КонецЕсли;
		Иначе
			УниверсальныеМеханизмы.СохранитьНастройку(мТекущаяНастройка);
		КонецЕсли;
	КонецЕсли;
КонецПроцедуры
Показать
user1114234; Tapochki-tmn; evgenum; rpgshnik; mihan; +5 Ответить
34. kernelio 4 16.05.14 17:27 Сейчас в теме
35. sternu 21.08.14 12:23 Сейчас в теме
Спасибо огромное, помогло в УПП! А то один пользователь замучил с настройками внешнего отчета, сама не умеет настроить отчет и 1С периодически забывала настройки, а мне не улыбается регулярно по пол-часа по телефону восстанавливать все варианты настроек отчета заново :)
36. svilsa 2 01.10.14 11:38 Сейчас в теме
Спасибо, пригодилось для внешнего отчета, в котором необходимо дать пользователю возможность подсмотреть "Настройки всех пользователей".
Светлый ум; +1 Ответить
37. imozg 169 06.10.14 14:57 Сейчас в теме
38. 6630 1 10.03.15 10:58 Сейчас в теме
Спасибо автору. Работает.
39. Sniper9mm 10.03.15 11:08 Сейчас в теме
40. Светлый ум 228 18.06.15 06:14 Сейчас в теме
41. Andrekaa 27.07.15 14:24 Сейчас в теме
помогло, спасибо
еще бы такой же пример для ПостроителяОтчетов
42. PVG_73 17 31.07.15 15:18 Сейчас в теме
Спасибо, сам начал было сие, но забросил... :-)
43. a.rezyhin 22 14.10.15 10:58 Сейчас в теме
Спасибо! Очень нужная статья!
44. buch_n 09.02.16 15:50 Сейчас в теме
45. docerman 47 15.11.16 16:55 Сейчас в теме
Вот спасибо. Просто спас).
46. Chrizt 230 25.11.16 17:01 Сейчас в теме
Под управляемые формы в толстом клиенте на 8.2 пришлось немножко переделать, но получилось.
Спасибо, автор!
47. Lilia 18.01.17 17:43 Сейчас в теме
Спасибо огромное! Мучение с настройками внешних отчетов закончилось!
48. Gary077 17.03.17 12:06 Сейчас в теме
49. rpgshnik 1684 29.03.17 05:02 Сейчас в теме
50. AMS_Guskov_VL 24.05.17 06:09 Сейчас в теме
8.3 толстый клиент, не работает. Формы с настройками сохранения и восстановления появляются, список настроек сохраняется. Сами настройки не восстанавливаются. Отличия у меня только рисунки на кнопках сохранения и восстановления, таких рисунков не нашел, переопределить стандартные кнопки тож не сумел. Штука полезная подскажите как пользоваться?
И в регистре сведений "Сохраненные настройки" сорока появляется.
56. Tapochki-tmn 43 07.02.18 15:42 Сейчас в теме
(50)

Ты уже наверняка разобрался, но для кого-то может оказаться полезным:

Кнопки сохранения/восстановления создавал сам на панели, и навесил указанные обработчики.
После копирования процедур ПриОткрытии() и ПриЗакрытии() не забываем еще раз указать форме, что у нее эти обработчики есть путем выбора этих обработчиков в свойствах формы.

Для восстановления настроек надо чтобы они сохранились.
У автора ошибочка в процедуре ПриЗакрытии(), забыл или не посчитал нужным указать строку:

Если мТекущаяНастройка <> Неопределено И мТекущаяНастройка.НаименованиеНастройки <> Неопределено
И мТекущаяНастройка.Свойство("СохранятьАвтоматически") И мТекущаяНастройка.СохранятьАвтоматически Тогда

мТекущаяНастройка.Вставить("СохраненнаяНастройка", Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки())); //потому, что значения настроек схемы СКД могли поменяться, а в настройке значения полученные при открытии формы

...

Где должна располагаться эта строка уже показали в комменте 33.

Может это все к твоему случаю и не относилось, но пусть будет тут ;)
51. Red_Devil 157 21.06.17 10:12 Сейчас в теме
Автор ты бы упомянул что в модуле необходимо объявить твою переменную Перем мТекущаяНастройка;
user1114234; +1 Ответить
52. Red_Devil 157 21.06.17 10:17 Сейчас в теме
53. user595031_fagosor 27.07.17 07:36 Сейчас в теме
Автору СПАСИБО, пригодилось :)!
54. EvgenS 03.10.17 15:59 Сейчас в теме
Подскажите как можно поместить в настройки табличные части у которые в настройках формы указаны как сохраняемые значения.
Наверное вместо этой строки
СохраненнаяНастройка = Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки());
мне нужно поместить табличные части, подскажите как это сделать?
55. Tapochki-tmn 43 07.02.18 15:29 Сейчас в теме
При написании обработки обмена добавил форму для установки/сохранения параметров обмена и разместил на форме поля ввода.

В обработчике "ПриИзменении" этих полей навесил процедуру "ЗначениеНастройкиОбменаПриИзменении":

Процедура ЗначениеНастройкиОбменаПриИзменении(Элемент)
	ТиповыеОтчеты.УстановитьПараметр(КомпоновщикНастроек, Элемент.Имя, ЭлементыФормы[Элемент.Имя].Значение);
КонецПроцедуры


При закрытии формы, с учетом добавленной строки, как указано выше в 33 комменте...

мТекущаяНастройка.Вставить("СохраненнаяНастройка", Новый ХранилищеЗначения(КомпоновщикНастроек.ПолучитьНастройки()));


...измененные значения параметров сохраняются в регистре и восстанавливаются при открытии формы:

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

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

	
КонецПроцедуры
Показать


Можно использовать типовую функцию:

ТиповыеОтчеты.ПолучитьПараметр(КомпоновщикНастроекКоллекцияЗначений, ИмяПараметра)
57. tinkerbell 15.02.18 08:17 Сейчас в теме
58. echo77 1093 15.02.18 09:35 Сейчас в теме
59. UserPro 4 22.06.18 11:05 Сейчас в теме
60. amigozzz1@gmail.com 16.04.19 13:33 Сейчас в теме
Идеально. Автор, Спасибо !
Оставьте свое сообщение

См. также

Немного про СКД. Характеристики и проверка пустого отчета 69

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

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

10.10.2019    2151    YPermitin    7       

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

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

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

10.10.2019    2243    Yashazz    31       

Две схемы СКД в одном отчете с пользовательскими параметрами 13

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

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

10.10.2019    1162    evgeni-red    6       

Три способа создания одного отчета на СКД 75

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

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

08.10.2019    3280    ids79    19       

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

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

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

25.09.2019    4501    YPermitin    24       

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

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

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

18.09.2019    6773    YPermitin    31       

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

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

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

05.09.2019    9739    ids79    42       

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

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

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

08.08.2019    10143    ids79    24       

Форма отчета СКД 57

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

Описание объекта ОбщиеФормы – ФормаОтчета.

01.08.2019    3272    vasilev2015    5       

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

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

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

26.07.2019    9106    ids79    6       

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

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

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

17.07.2019    8557    ids79    24       

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

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

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

09.07.2019    6034    ids79    0       

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

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

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

04.07.2019    6156    SeiOkami    48       

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

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

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

02.07.2019    9349    ids79    8       

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

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

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

25.06.2019    17221    ids79    16       

Не провоцируйте СКД, или пример "как не надо" 50

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

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

10.06.2019    7233    SeiOkami    90       

Еще один способ нестандартной расшифровки отчета. Без использования обработчиков формы. Для ленивых 90

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

Лень+ СКД. Еще один нестандартный способ расшифровки отчета. Без использования обработчиков формы. Только макет компоновки и модуль отчета. Весь исходный текст в статье.

16.05.2019    5589    tusv    55       

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

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

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

14.05.2019    7274    Viktor_Ermakov    6       

Разворачивание таблицы свойств и значений по колонкам через СКД 18

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

СКД! Юниоры 1С начинают паниковать, когда слышат эту аббревиатуру. Хороший пример, упрощающий жизнь начинающему разработчику, представлен ниже.

12.05.2019    3539    Eret1k    0       

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

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

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

25.04.2019    4749    m-rv    2       

Свой макет оформления отчета 33

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

Пример создания и оформления и применения своего (пользовательского ) макета оформления для СКД.

24.04.2019    4463    olegpkc    5       

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

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

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

16.04.2019    7270    m-rv    16       

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

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

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

25.03.2019    5298    ellavs    9       

"Склеивание" отчетов на СКД 23

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

Методика программного объединения данных нескольких отчетов в итоговый сводный. По ссылке опубликован пример на реальных данных и код отчета: https://infostart.ru/public/1017891/

10.03.2019    4511    bivmail    2       

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

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

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

07.03.2019    23001    ids79    32       

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

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

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

17.02.2019    4098    srub    10       

Вывод результата компоновки в таблицу и дерево значений 29

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

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

14.02.2019    3987    kasper076    5       

Ещё раз о суммировании группировок в СКД 59

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

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

11.02.2019    6636    Dioneo    17       

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

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

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

1 стартмани

12.01.2019    2887    lunjio    0       

Еще раз о расшифровке для СКД 22

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

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

27.12.2018    4959    scientes    2       

Заголовок с параметром в отчете СКД 30

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

Статья, как сделать заголовок с параметром в отчете СКД.

19.12.2018    5390    user913680    16       

Тот самый Рабочий стол. Возрождение легенды 76

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

Невероятный инструмент построения адаптивных интерфейсов.

30.11.2018    9881    1c-intelligence    23       

Установка собственных значений полей при программном выводе отчета СКД по имени поля (по принципу "как в макете") 15

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

При программном выводе отчета на СКД возникает задача заполнить поля своими значениями. Но при поэлементном выводе отчета параметры "обезличены" как П1, П2, П3, ... Как узнать в какое "П" содержит нужное поле и куда устанавливать значение? Статья поможет программистам начинающим освоение СКД и перешедшим на СКД с "макета" ответить на эти вопросы на примере готового решения.

23.11.2018    4925    lmnlmn    0       

Дополнительные реквизиты в типовом отчете и их отсутствие 18

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

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

18.11.2018    4665    dyuha    0       

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

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

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

13.11.2018    19459    Unk92    18       

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

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

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

10.11.2018    20723    ids79    40       

Перевод конфигурации на 8.3.13 17

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

Опыт решения проблем. 1. Проблема с СКД преобразованием запроса при отключении режима совместимости:

06.11.2018    5485    serferian    26       

Вертикальные границы отчета в интерфейсе "Такси" 8

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

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

30.10.2018    3626    FesenkoA    9       

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

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

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

15.10.2018    20364    tormozit    100       

Приемы работы с СКД: делаем за 5 минут то, на что у других уйдет час 376

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

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

03.09.2018    30887    SergeyN    26       

Как легко в СКД сделать переключатель: рубли, тыс. руб., млн. руб. 72

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

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

07.08.2018    8311    SayDimas    15       

[Шпаргалка] Свой заголовок отчету на СКД с параметрами (без программирования) 198

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

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

23.07.2018    24519    rpgshnik    38       

Повышаем эффективность разработки правил обмена 122

Статья Программист Нет файла v8 КД ОС Бесплатно (free) Практика программирования Перенос данных из 1C8 в 1C8

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

25.06.2018    19224    olegtymko    43       

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

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

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

01.06.2018    21109    m-rv    21