Инструменты пользователя

Инструменты сайта


1c:algoritmy_dlja_gruppovoj_obrabotki

Алгоритмы для групповой обработки

Удалить дополнительный реквизит у элемента справочника

// нужно заполнить наименования свойств отсюда: Наборы дополнительных реквизитов и сведений: e1cib/list/Справочник.НаборыДополнительныхРеквизитовИСведений
// имя для заполнения взять из раздела "для разработчиков"
///////////////////////////////////////////////////////////////////////////////////////
ИмяСвойства = "СюдаНаписатьИмяСвойстваКотороеБудемОчищать";   // ПРИМЕР  "ПрименемостьДетали_c99f7bab121c4a299319920bbd76cb88"
///////////////////////////////////////////////////////////////////////////////////////

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

Скопировать значение одного доп реквизита в другой

// нужно заполнить наименования свойств отсюда: Наборы дополнительных реквизитов и сведений: e1cib/list/Справочник.НаборыДополнительныхРеквизитовИСведений
// имя для заполнения взять из раздела "для разработчиков"
///////////////////////////////////////////////////////////////////////////////////////
ИмяСвойстваИсточник = "СюдаНаписатьИмяСвойстваИзкоторогоБудемКопировать";   // ПРИМЕР  "ПрименемостьДетали_c99f7bab121c4a299319920bbd76cb88"
ИмяСвойстваПриемник = "СюдаНаписатьИмяСвойстваВкотороеБудемКопировать";
///////////////////////////////////////////////////////////////////////////////////////
СвойствоИсточник = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", ИмяСвойстваИсточник);
СвойствоПриемник = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", ИмяСвойстваПриемник);
Ссылка = Объект.Ссылка;

ЗначениеИсточник = УправлениеСвойствами.ЗначениеСвойства(Ссылка, СвойствоИсточник);
ЗначениеПриемник = УправлениеСвойствами.ЗначениеСвойства(Ссылка, СвойствоПриемник);

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

Скопировать значение дополнительного реквизита в обычный

СвойствоИсточник = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", "ПрименяемостьСвечи_49f1b95c86784e28a2d5eb0f32ede243");
СвойствоПриемник = "Применяемость";
Ссылка = Объект.Ссылка;

ЗначениеИсточник = УправлениеСвойствами.ЗначениеСвойства(Ссылка, СвойствоИсточник);
ЗначениеПриемник = Объект[СвойствоПриемник];

Если ЗначениеЗаполнено(ЗначениеИсточник) И Не ЗначениеЗаполнено(ЗначениеПриемник) Тогда
    Объект[СвойствоПриемник] = ЗначениеИсточник;
КонецЕсли;

Пометка на удаление дублей номенклатуры поставщиков

Дубли опеределяются по паре «артикул-брэнд». Помечаются те, что не имеют привязки.

ВЫБРАТЬ
	ФПБС_НоменклатураПоставщиков.Ссылка КАК Ссылка
ИЗ
	Справочник.ФПБС_НоменклатураПоставщиков КАК ФПБС_НоменклатураПоставщиков
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ФПБС_ЦеныИОстаткиНоменклатурыПоставщиков КАК ФПБС_ЦеныИОстаткиНоменклатурыПоставщиковСрезПоследних
		ПО (ФПБС_НоменклатураПоставщиков.Ссылка = ФПБС_ЦеныИОстаткиНоменклатурыПоставщиковСрезПоследних.НоменклатураПоставщика
				И ФПБС_ЦеныИОстаткиНоменклатурыПоставщиковСрезПоследних.ПрофильПартнера = &ПрофильПартнера)
ГДЕ
	ФПБС_НоменклатураПоставщиков.Владелец = &Владелец
	И ФПБС_НоменклатураПоставщиков.Номенклатура = ЗНАЧЕНИЕ(Справочник.Номенклатура.ПустаяСсылка)
	И (ФПБС_НоменклатураПоставщиков.Артикул, ФПБС_НоменклатураПоставщиков.Производитель) В
			(ВЫБРАТЬ
				ФПБС_НоменклатураПоставщиков.Артикул КАК Артикул,
				ФПБС_НоменклатураПоставщиков.Производитель КАК Производитель
			ИЗ
				Справочник.ФПБС_НоменклатураПоставщиков КАК ФПБС_НоменклатураПоставщиков
			ГДЕ
				НЕ ФПБС_НоменклатураПоставщиков.ПометкаУдаления
				И НЕ ФПБС_НоменклатураПоставщиков.Недействителен
				И ФПБС_НоменклатураПоставщиков.Владелец = &Владелец
			СГРУППИРОВАТЬ ПО
				ФПБС_НоменклатураПоставщиков.Артикул,
				ФПБС_НоменклатураПоставщиков.Производитель
			ИМЕЮЩИЕ
				СУММА(1) > 1)
	И ФПБС_ЦеныИОстаткиНоменклатурыПоставщиковСрезПоследних.Регистратор ЕСТЬ NULL
/var/www/html/data/pages/1c/algoritmy_dlja_gruppovoj_obrabotki.txt · Последнее изменение: Павел Зайцев

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki