Произвольная расшифровка ячейки СКД

15.11.24

Разработка - СКД

Расшифровка с использованием данных текущей строки.

Задача:

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

Что нам для этого понадобится?

1. Закладка "Макет" СКД.

А именно возможность указать несколько значений в колонке "Имя поля" для расшифровки макета поля.

2. Форма.

Для использования обработчика "ОбработкаРасшифровки".

3. В обработке расшифровки пишем что-то вроде:
 

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

И серверные процедуры:

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


И клиентскую:

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

 

В итоге у нас в базе что-то произошло, а новое значение записалось в текущую ячейку.

Можно ли развить данный метод и заполнять данные сразу в нескольких выделенных ячейках?

Можно! 

1. "ВыделенныеОбласти".Имя - получим диапазон выделенных ячеек

2. Возьмем из них идентификатор данных расшифровки.

3. Дальше развивать под техническое задание.

Вступайте в нашу телеграмм-группу Инфостарт

СКД

Вы можете заказать платную адаптацию этой статьи под ваши задачи на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    266520    1484    421    

1177

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

16.06.2026    3649    sapervodichka    45    

49

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

В этой статье представлен СКДБилдер — общий модуль-обёртка над объектной моделью СКД, который сокращает код в 3-4 раза и делает его читаемым.

29.01.2026    7648    392    shapa_pro    27    

71

СКД Программист 1С:Предприятие 8 Бесплатно (free)

Статья написана по результатам проведенного внутреннего обучающего вебинара для разработчиков ГК «СофтБаланс». Если осилить 25 000 знаков - задача для вас непосильная, где-то на бескрайних просторах интернета видео есть (или будет). Но здесь информация точнее. Разберем, чем запрос для СКД принципиально отличается от обычного запроса и как модифицируется в зависимости от настроек. Изучим «базовый рецепт» написания запроса для СКД, сформируем чек-лист. Полезно будет всем – от стажеров до тех. лидов. Всем, кто не снимает галку «автозаполнение» и пишет запросы для отчетов в консоли запросов – читать (вдумчиво) обязательно.

29.10.2025    22113    ovetgana    112    

115

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

01.07.2025    12696    krasnoshchekovpavel    7    

68

СКД Программист Стажер 1С:Предприятие 8 Россия Бесплатно (free)

Несколько способов управления формами выбора параметров и отборов СКД.

10.04.2025    12269    Neti    0    

42

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

27.02.2025    17640    ovetgana    50    

93

СКД Программист 1С:Предприятие 8 Бесплатно (free)

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

24.12.2024    15433    Akcium    17    

47
Для отправки сообщения требуется регистрация/авторизация