Получаем уровень группировки ячейки табличного документа

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

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

Табличный документ ТабДок уровень группировки ячейка функции

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

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

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

Единственное, что я нашёл подходящее для моей задачи, это была вот эта статья: //1kat.ru/public/182115/. В данной разработке использовалась функция определения уровня ячейки. Но при использовании обнаружил следующее:

  •  в ней нет функции определении уровня группировок колонок, а только функция определения уровня группировки строк;
  •   при наличии в табличном документе группировок колонок функция определения уровня строк перестаёт работать.

Далее я натолкнулся на хорошую статья //1kat.ru/public/562724/, где используется сериализация и разбор структуры табличного документа. И мне захотелось просто сделать функции, куда передаёшь координаты ячейки и получаешь уровни колонок и строк группировок.

Итак, у вас есть форма обработки и на ней размещен  реквизит формы табличный документ (ТабДок), далее становимся на любую ячейку и нажимаем кнопку "ПолучитьУровниТекущейЯчейки". Выводятся сообщения с номерами уровней группировки  строк и колонок ячейки.  Если ячейка не входят в группировки, то её уровень равен. 1 (единица).

Вот код: 

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

&НаСервереБезКонтекста
Функция ПолучитьУровеньГруппировкиЯчейки(ТабДок, НомерСтроки,НомерКолонки)
	
	Перем УровеньЯчейки;
	
	УровеньЯчейки = Новый Структура("УровеньСтроки,УровеньКолонки",1,1);
	
	мЗапись = Новый ЗаписьXML;
	мЗапись.УстановитьСтроку("UTF-8");
	
	СериализаторXDTO.ЗаписатьXML(мЗапись,ТабДок);
	
	ТекстXML = мЗапись.Закрыть();
	
	мЧтение = Новый ЧтениеXML;
	мЧтение.УстановитьСтроку(ТекстXML);
	ПострDOM = Новый ПостроительDOM;
	ДанныеDOM = ПострDOM.Прочитать(мЧтение);
	
	//уровни строк
	ТаблицаУровнейПоСтрокам = ПолучитьТаблицуУровнейПоСтрокам(ДанныеDOM);
	строкаУровняПоСтрокам = ТаблицаУровнейПоСтрокам.Найти(НомерСтроки,"Номер");
	Если строкаУровняПоСтрокам <> Неопределено Тогда
		УровеньЯчейки.УровеньСтроки = строкаУровняПоСтрокам.Уровень;
	КонецЕсли;	
	
    //уровни колонок
	ТаблицаУровнейПоКолонкам = ПолучитьТаблицуУровнейПоКолонкам(ДанныеDOM);
	строкиУровнейКолонокПоНомерамСтрок = ТаблицаУровнейПоКолонкам.НайтиСтроки(Новый Структура("НомерСтроки,ЕстьУровни", НомерСтроки,Истина));
	Если строкиУровнейКолонокПоНомерамСтрок.Количество() > 0 Тогда
		ТаблицаКолонок = строкиУровнейКолонокПоНомерамСтрок[0].ТаблицаКолонок;
		строкаУровняКолонки = ТаблицаКолонок.Найти(НомерКолонки, "Номер");
		Если строкаУровняКолонки <> Неопределено Тогда
			УровеньЯчейки.УровеньКолонки = строкаУровняКолонки.Уровень;
		КонецЕсли;	
	КонецЕсли;
	
	Возврат УровеньЯчейки;
	
КонецФункции	

&НаСервереБезКонтекста
Функция ПолучитьТаблицуУровнейПоСтрокам(ДанныеDOMТабДок)
	
	ТаблицаУровней = Новый ТаблицаЗначений;
	ТаблицаУровней.Колонки.Добавить("Номер",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,0))); 
	ТаблицаУровней.Колонки.Добавить("Уровень",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,0))); 
	
	УзлыУровнейDOMТабДок =  ДанныеDOMТабДок.ПолучитьЭлементыПоИмени("vg");
	ПредКонецГруппировки = 0;
	Для инд = 0 по УзлыУровнейDOMТабДок.Количество() - 1 Цикл
		
		УзелГруппы = УзлыУровнейDOMТабДок[инд];
		
		НачалоГруппировки = 0;
		КонецГруппировки = 0;
		
		Для н = 0 По УзелГруппы.ДочерниеУзлы.Количество() - 1 Цикл
			ПодУзел =  УзелГруппы.ДочерниеУзлы[н];
			Если ПодУзел.ИмяУзла = "b" Тогда
				НачалоГруппировки = Число(СокрЛП(ПодУзел.ТекстовоеСодержимое));
			ИначеЕсли ПодУзел.ИмяУзла = "e" Тогда
				КонецГруппировки = Число(СокрЛП(ПодУзел.ТекстовоеСодержимое));
			КонецЕсли;
		КонецЦикла;
		
		Если НачалоГруппировки = 0 Тогда Продолжить КонецЕсли;
		
		// если конца группировки не оказалось, то одна позиция в подгруппе
		Если КонецГруппировки = 0 Тогда
			КонецГруппировки = НачалоГруппировки
		КонецЕсли; 
		
		//конец область увеличить нужно на 1 
		КонецГруппировки = КонецГруппировки + 1; 
		РодительскийУровень = 0;
		Для Номер = НачалоГруппировки по КонецГруппировки Цикл
				
			строкаТаблицы = ТаблицаУровней.Найти(Номер, "Номер");
			Если строкаТаблицы = Неопределено Тогда
				строкаТаблицы = ТаблицаУровней.Добавить();
				строкаТаблицы.Номер = Номер;
				строкаТаблицы.Уровень = РодительскийУровень + 1;
				Если Номер = НачалоГруппировки Тогда
					РодительскийУровень = 1;
				КонецЕсли;	
			Иначе
				Если Номер = НачалоГруппировки Тогда
					РодительскийУровень = строкаТаблицы.Уровень
				Иначе
					строкаТаблицы.Уровень = РодительскийУровень + 1;	
				КонецЕсли;	
				
			КонецЕсли;
				
		КонецЦикла;	
		
	КонецЦикла;
	
	Возврат ТаблицаУровней;
	
КонецФункции

&НаСервереБезКонтекста
Функция ПолучитьТаблицуУровнейПоКолонкам(ДанныеDOMТабДок)
	
	ТаблицаУровней = Новый ТаблицаЗначений;
	ТаблицаУровней.Колонки.Добавить("НомерСтроки",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,0))); 
	ТаблицаУровней.Колонки.Добавить("columnsID",Новый ОписаниеТипов("Строка",Новый КвалификаторыСтроки(36))); 
	ТаблицаУровней.Колонки.Добавить("ТаблицаКолонок"); 
	ТаблицаУровней.Колонки.Добавить("Уровень",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,0))); 
	ТаблицаУровней.Колонки.Добавить("ЕстьУровни",Новый ОписаниеТипов("Булево")); 
	
	//Определяем сколько строк
	//и идентификатор колонок columnsID, которые будут заполнены в тех строках
	//где своё количество колонок (новый формат строк)
	УзлыУровнейDOMТабДок =  ДанныеDOMТабДок.ПолучитьЭлементыПоИмени("rowsItem");
	Для инд = 0 по УзлыУровнейDOMТабДок.Количество() - 1 Цикл
		УзелГруппы = УзлыУровнейDOMТабДок[инд];
		

		строкаТаблицыНомерСтроки = ТаблицаУровней.Добавить();
		
		ТаблицаКолонок = Новый ТаблицаЗначений;
		ТаблицаКолонок.Колонки.Добавить("Номер",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,0))); 
		ТаблицаКолонок.Колонки.Добавить("Уровень",Новый ОписаниеТипов("Число",Новый КвалификаторыЧисла(10,0))); 
		
		строкаТаблицыНомерСтроки.ТаблицаКолонок = ТаблицаКолонок;
		
		Для н = 0 По УзелГруппы.ДочерниеУзлы.Количество() - 1 Цикл
			ПодУзел =  УзелГруппы.ДочерниеУзлы[н];
			Если ПодУзел.ИмяУзла = "index" Тогда
				строкаТаблицыНомерСтроки.НомерСтроки = Число(ПодУзел.ТекстовоеСодержимое) + 1;
			ИначеЕсли ПодУзел.ИмяУзла = "row" Тогда
				ПодУзел2 = ПодУзел.ДочерниеУзлы;
				Для м = 0 по ПодУзел.ДочерниеУзлы.Количество() - 1 Цикл
					ПодУзел2 = ПодУзел.ДочерниеУзлы[м];
					Если ПодУзел2.ИмяУзла = "columnsID" Тогда
						строкаТаблицыНомерСтроки.columnsID = СокрЛП(ПодУзел.ТекстовоеСодержимое);
						Прервать;
					КонецЕсли;	
				КонецЦикла;	
			КонецЕсли;
		КонецЦикла;
	КонецЦикла;	
	
	УзлыУровнейDOMТабДок =  ДанныеDOMТабДок.ПолучитьЭлементыПоИмени("hg");
	
	Для инд = 0 по УзлыУровнейDOMТабДок.Количество() - 1 Цикл
		
		УзелГруппы = УзлыУровнейDOMТабДок[инд];
		
		columnsID = Неопределено;
		НачалоГруппировки = 0;
		КонецГруппировки = 0;
		
		Для н = 0 По УзелГруппы.ДочерниеУзлы.Количество() - 1 Цикл
			ПодУзел =  УзелГруппы.ДочерниеУзлы[н];
			Если ПодУзел.ИмяУзла = "columnsID" Тогда
				columnsID = СокрЛП(ПодУзел.ТекстовоеСодержимое);
			ИначеЕсли ПодУзел.ИмяУзла = "b" Тогда
				НачалоГруппировки = Число(СокрЛП(ПодУзел.ТекстовоеСодержимое));
			ИначеЕсли ПодУзел.ИмяУзла = "e" Тогда
				КонецГруппировки = Число(СокрЛП(ПодУзел.ТекстовоеСодержимое));
			КонецЕсли;
		КонецЦикла;
		
		Если НачалоГруппировки = 0 Тогда Продолжить КонецЕсли;
		
		// если конца группировки не оказалось, то одна позиция в подгруппе
		Если КонецГруппировки = 0 Тогда
			КонецГруппировки = НачалоГруппировки
		КонецЕсли; 
		
		//конец область увеличить нужно на 1 
		КонецГруппировки = КонецГруппировки + 1;
		
		строкиКолонки = ТаблицаУровней.НайтиСтроки(Новый Структура("columnsID", columnsID));
		ПредКонецГруппировки = 0;
		Для НомерСтроки = 0 по строкиКолонки.Количество()  - 1 Цикл
			
			строкиКолонки.Получить(НомерСтроки).ЕстьУровни = Истина;
		    ТаблицаКолонок = строкиКолонки.Получить(НомерСтроки).ТаблицаКолонок;
			РодительскийУровень = 0;
			Для Номер = НачалоГруппировки по КонецГруппировки Цикл
				
				строкаТаблицы = ТаблицаКолонок.Найти(Номер, "Номер");
				Если строкаТаблицы = Неопределено Тогда
					строкаТаблицы = ТаблицаКолонок.Добавить();
					строкаТаблицы.Уровень = РодительскийУровень  + 1;
					строкаТаблицы.Номер = Номер;
					Если Номер = НачалоГруппировки Тогда
						РодительскийУровень = 1;
					КонецЕсли;	
				Иначе
					Если Номер = НачалоГруппировки Тогда
						РодительскийУровень = строкаТаблицы.Уровень
					Иначе
						строкаТаблицы.Уровень = РодительскийУровень + 1;	
					КонецЕсли;	
				КонецЕсли;
				
			КонецЦикла;	
			
		КонецЦикла;
		
	КонецЦикла;
	
	Возврат ТаблицаУровней;
	
КонецФункции

 

Проверял работает на 8.3, 8.2, должно работать и на 8.1. 

Не претендую на лаконичность кода, хотелось, чтобы бы всё было понятно.

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

Вознаграждение за ответ
Показать полностью
Комментарии
Избранное Подписка Сортировка: Древо развёрнутое
Свернуть все
1. Rustig 1369 23.03.20 12:12 Сейчас в теме
(0) решение обратных задач всегда сложнее. а потому более ценно.
Спасибо за решение!
Оставьте свое сообщение

См. также

Программная работа с настройками СКД

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

Нюансы программной работы с настройками системы компоновки данных в отчетах и динамических списках. Обзор всех видов настроек компоновки. Что в каких случаях правильно применять. В качестве примера рассмотрена работа с отборами и группировками.

27.01.2020    9299    ids79    26       

Онлайн-курс «Автоматизация процессов управления МТО: методика сбора и формализации требований» с 1 апреля по 13 мая 2020 года. Промо

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

40000 рублей

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

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

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

15.01.2020    10795    John_d    22       

Последовательности событий. Шпаргалка

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

Собрал информацию о событиях/подписках/расширениях в одном месте.

30.12.2019    6929    kuzyara    33       

Онлайн-курс «Практические аспекты внедрения регламентированного учета и расчета себестоимости в 1С:ERP на крупных промышленных предприятиях» с 20 апреля по 15 мая 2020 года. Промо

Курс рассчитан для подготовки экспертов по регламентированному учету и учету затрат для внедрения на крупных промышленных предприятиях с «исторически сложившимся» учетом

9000 рублей

30 задач. Странных и не очень

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

30 задач на знание языка программирования 1С и некоторого поведения платформы. Маленьких. Странных и не очень.

02.12.2019    10847    YPermitin    72       

Готовые переносы данных из различных конфигураций 1C Промо

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

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

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

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

05.09.2019    30890    ids79    50       

DevOps для 1С. Онлайн-курс проходит с 16 апреля по 11 июня 2020 года. Промо

Данный онлайн-курс предусматривает изучение процессов DevOps, их применение при разработке на платформе 1С. В результате прохождения онлайн-курса вы сможете: настроить ПО необходимое для проведения проверок и тестирования, создавать сценарии тестирования и объединять их в комплексные процессы, создавать скрипты для автоматизации процессов DevOps.

12000 рублей

Три костыля. Сказ про фокусы в коде

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

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

03.09.2019    19179    YPermitin    80       

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

Отслеживание выполнения фонового задания

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

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

17.08.2019    21971    ids79    16       

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

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

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

08.08.2019    43101    ids79    36       

1C:Предприятие для программистов: Расчетные задачи (зарплата). Онлайн-интенсив с 01 по 17 июня 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, которые предназначены для автоматизации периодических расчетов, а именно - для расчета зарплаты. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”, а также для опытных пользователей прикладного решения “1С:Зарплата и управление персоналом” и прочих прикладных решений, в которых реализован функционал расчета зарплаты.

4900 рублей

Фоновое выполнение кода в 1С - это просто

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

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

02.08.2019    21954    avalakh    21       

Подборка программ для взаимодействия с ЕГАИС Промо

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

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

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

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

26.07.2019    33836    ids79    11       

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

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

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

17.07.2019    23509    ids79    27       

Подборка решений для взаимодействия со ФГИС «Меркурий» Промо

С 1 июля 2019 года все компании, участвующие в обороте товаров животного происхождения, должны перейти на электронную ветеринарную сертификацию (ЭВС) через ФГИС «Меркурий». Инфостарт предлагает подборку программ, связанных с этим изменением.

Регистры сведений. За кулисами

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

Небольшие заметки по внутреннему устройству регистров сведений.

09.07.2019    17950    YPermitin    13       

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

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

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

04.07.2019    14577    SeiOkami    49       

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

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

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

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

25.06.2019    36428    ids79    17       

Многопоточное ускорение однопользовательских нагрузок в 1С + Microsoft SQL Server 2017

Статья Программист Нет файла v8 v8::Запросы Бесплатно (free) Практика программирования Производительность и оптимизация (HighLoad)

Взаимодействие с Microsoft SQL Server нередко вызывает трудности у 1С-ников, а потому интересны любые моменты, связанные с его использованием. О своем опыте работы с новым SQL Server 2017 участникам конференции Infostart-2018 рассказал директор ООО «Аналитика софт» Дмитрий Дудин.

11.06.2019    19005    dmurk    144       

Новый раздел на Инфостарте - Electronic Software Distribution Промо

Инфостарт напоминает: на нашем сайте можно купить не только ПО, связанное с 1С. В нашем арсенале – ESD-лицензии на ПО от ведущих вендоров: Microsoft, Kaspersky, ESET, Dr.Web, Аскон и другие.

  • Низкие цены, без скрытых платежей и наценок
  • Оперативная отгрузка
  • Возможность оплаты с личного счета (кешбек, обмен стартмани на рубли и т.п.)
  • Покупки идут в накопления для получения скидочных карт лояльности Silver (5%) и Gold (10%)

Регистры накопления. Структура хранения в базе данных

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

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

16.05.2019    31416    YPermitin    30       

Выполнение внешней обработки в фоновом задании

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

Подробное описание подхода к созданию длительной операции на основе внешней обработки. Реализация протестирована на 1С 8.3.12.1714 (x64).

11.05.2019    20573    Eret1k    23       

Базовый курс по обмену данными в системе 1С:Предприятие. Онлайн-интенсив с 12 по 28 мая 2020 г. Промо

Данный онлайн-курс предусматривает изучение механизмов платформы “1С:Предприятие”, обеспечивающих обмен данными между различными прикладными 1С-решениями и взаимодействие с другими информационными системами. Курс предназначен для тех, кто уже имеет определенные навыки конфигурирования и программирования в системе “1С:Предприятие”.

5500 рублей

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

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

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

25.04.2019    11799    m-rv    2       

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

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

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

16.04.2019    15183    m-rv    16       

Онлайн-интенсив "1C:Предприятие для программистов: Бухгалтерские задачи" с 22 июня по 8 июля 2020 г. Промо

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

4900 рублей

О расширениях замолвите слово...

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

О чём стоит задуматься при принятии решения о создании расширения конфигурации…

07.04.2019    26082    ellavs    125       

Git-репозитории для 1С-кода (опыт использования при небольших проектах)

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

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

28.03.2019    20890    ellavs    83