Корректировка в табличной части единицы измерения для номенклатуры (Метаданные)
Задачи пользователя - Адаптация типовых решений
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
В результате за 30 мин. была написана обработка которая на основе метаданных обходит все документы в базе находит те которые содержат ключевую пару "номенклатура" и "ЕдиницаИзмерения" в табличной части и исправляет запись реквизита.
Это моя первая публикация. Работаю с метаданными по 8.1 в первый раз...
Поэтому если сильно криво, просьба не ругать, а оценить как есть...
Спасибо за поддержку и понимание.
Процедура КнопкаВыполнитьНажатие(Кнопка)
КоличествоДокументов = Метаданные.Документы.Количество() - 1;
ЭлементыФормы.Надпись2.Заголовок = КоличествоДокументов;
ЭлементыФормы.Индикатор.МинимальноеЗначение = 0;
ЭлементыФормы.Индикатор.МаксимальноеЗначение = КоличествоДокументов;
Для НомерТипаДокумента = 0 По КоличествоДокументов Цикл
ЭлементыФормы.Индикатор.Значение = НомерТипаДокумента;
Документ = Метаданные.Документы.Получить(НомерТипаДокумента);
КолТабЧастей = Документ.ТабличныеЧасти.Количество();
Для НомерТабЧасти=0 По КолТабЧастей-1 Цикл
ТабличнаяЧасть = Документ.ТабличныеЧасти[НомерТабЧасти];
КолРекТабЧасти = ТабличнаяЧасть.Реквизиты.Количество();
ДокументСодержитИскомыеПоля = 0;
Для НомерРекТабЧасти=0 По КолРекТабЧасти-1 Цикл
Реквизит = ТабличнаяЧасть.Реквизиты[НомерРекТабЧасти].Имя;
Если (Реквизит="Номенклатура") или (Реквизит="ЕдиницаИзмерения") Тогда
ДокументСодержитИскомыеПоля = ДокументСодержитИскомыеПоля + 1;
КонецЕсли;
КонецЦикла;
Если ДокументСодержитИскомыеПоля > 1 Тогда
Имя = Документ.Имя;
ВыборкаДок = Документы[Имя].Выбрать();
Пока ВыборкаДок.Следующий() Цикл
ЭлементыФормы.НадписьДокумент.Заголовок = "Текущий документ: "+ВыборкаДок.ПолучитьОбъект();
ЭлементыФормы.ТекстовыйДокумент.ДобавитьСтроку(ВыборкаДок.ПолучитьОбъект());
Объект = ВыборкаДок.ПолучитьОбъект();
Для каждого ТекСтрока Из Объект[ТабличнаяЧасть.Имя] Цикл
ТекСтрока.ЕдиницаИзмерения=ТекСтрока.Номенклатура.БазоваяЕдиницаИзмерения;
КонецЦикла;
Объект.Записать(РежимЗаписиДокумента.Запись);
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Вступайте в нашу телеграмм-группу Инфостарт