Люди помогите с процедурой пожалуйста!нужно исправить!СРОЧНО!!!
Всем доброго дня ребят, есть вопрос по поводу автоматического заполнения таблицы документа из другой таблицы!
Вот есть документ в нем две таблицы,есть кнопка для того что бы происходило заполнение из одной таблицы в другую!
ЧТо нужно!
нужно,что бы эта кнопка работала только для тех строк где есть определенное название подразделения!
я пробывал дописать Если но что то не получилось
Сама процедура вот такая,какая он сейчас
Подскажите пожалуйста,как правильно дописать Процедуру!!
Конфа:Управление производственным предприятием, редакция 1.3 (1.3.111.1)
Вот есть документ в нем две таблицы,есть кнопка для того что бы происходило заполнение из одной таблицы в другую!
ЧТо нужно!
нужно,что бы эта кнопка работала только для тех строк где есть определенное название подразделения!
я пробывал дописать Если но что то не получилось
Процедура ..........................()
Если ПродукцияБрака.Итог("Подразделение") = "1.УчастокТП" ИЛИ "4.УчастокСборки" Тогда
........
.........
..........
.............
...........
..........
КонецЕсли;
КонецПроцедуры
ПоказатьСама процедура вот такая,какая он сейчас
Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
Для каждого Стр из ПродукцияБрака Цикл
НоваяСтрока = МатериалыБрака.Добавить();
НоваяСтрока.Количество = Стр.Количество;
НоваяСтрока.Номенклатура = Стр.Номенклатура;
НоваяСтрока.Заказ = Стр.Заказ;
НоваяСтрока.ЕдиницаИзмерения =Стр.ЕдиницаИзмерения;
НоваяСтрока.Коэффициент = Стр.Коэффициент;
НоваяСтрока.Подразделение = Стр.Подразделение;
КонецЦикла;
Ответ = Вопрос("Проверьте правильность заполнения номенклатуры!!!"
+ Символы.ПС + "Продолжить?" + Символы.ПС,
РежимДиалогаВопрос.ДаНет);
Если Не Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Этаформа.ТекущийЭлемент = ЭлементыФормы.МатериалыБрака;
КонецПроцедуры
ПоказатьПодскажите пожалуйста,как правильно дописать Процедуру!!
Конфа:Управление производственным предприятием, редакция 1.3 (1.3.111.1)
По теме из базы знаний
Найденные решения
Это всё ужасно. Но уж если так хочется, то должно быть что-то вроде этого:
Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
Для каждого Стр из ПродукцияБрака Цикл
Если Стр.Подразделение.Наименование = "1.УчастокТП" ИЛИ Стр.Подразделение.Наименование = "4.УчастокСборки" Тогда
...
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Лучше смотреть не по наименованию, а по коду, подразделения. Идеальный вариант завести регистр сведений на этот случай
Для примера можно попробовать такой вариант.
Для примера можно попробовать такой вариант.
Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
Для каждого Стр из ПродукцияБрака Цикл
Если Стр.Подразделение.наименование = "1.УчастокТП" ИЛИ Стр.Подразделение.наименование ="4.УчастокСборки"Тогда
Продолжить;
КонецЕсли
НоваяСтрока = МатериалыБрака.Добавить();
НоваяСтрока.Количество = Стр.Количество;
НоваяСтрока.Номенклатура = Стр.Номенклатура;
НоваяСтрока.Заказ = Стр.Заказ;
НоваяСтрока.ЕдиницаИзмерения =Стр.ЕдиницаИзмерения;
НоваяСтрока.Коэффициент = Стр.Коэффициент;
НоваяСтрока.Подразделение = Стр.Подразделение;
КонецЦикла;
Ответ = Вопрос("Проверьте правильность заполнения номенклатуры!!!"
+ Символы.ПС + "Продолжить?" + Символы.ПС,
РежимДиалогаВопрос.ДаНет);
Если Не Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Этаформа.ТекущийЭлемент = ЭлементыФормы.МатериалыБрака;
КонецПроцедуры
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Это всё ужасно. Но уж если так хочется, то должно быть что-то вроде этого:
Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
Для каждого Стр из ПродукцияБрака Цикл
Если Стр.Подразделение.Наименование = "1.УчастокТП" ИЛИ Стр.Подразделение.Наименование = "4.УчастокСборки" Тогда
...
КонецЕсли;
КонецЦикла;
КонецПроцедуры
(3) у меня вот такая процедура получилась добавил Иначе если!
результат не тот что нужен..
он выдает сначала все спецификации,по всем подразделениям
а после те строки что описаны выше в цикле,но понужным подразделениям!что то тут я не то написал..помогите пожалуйста..надо что бы при нажатии на кнопку, по таким подразделениям он выдавал то что выше,а по другим подразделениям он раскрывал специфакации!
результат не тот что нужен..
он выдает сначала все спецификации,по всем подразделениям
а после те строки что описаны выше в цикле,но понужным подразделениям!что то тут я не то написал..помогите пожалуйста..надо что бы при нажатии на кнопку, по таким подразделениям он выдавал то что выше,а по другим подразделениям он раскрывал специфакации!
Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
Ответ = Вопрос("Проверьте правильность заполнения номенклатуры!!!"
+ Символы.ПС + "Продолжить?" + Символы.ПС,
РежимДиалогаВопрос.ДаНет);
Если Не Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Для каждого Стр из ПродукцияБрака Цикл
Если Стр.Подразделение.Наименование = "2.Участок ТЦ" ИЛИ Стр.Подразделение.Наименование = "3.Участок 1 исп." ИЛИ Стр.Подразделение.Наименование = "5.Участок ПСИ" ИЛИ Стр.Подразделение.Наименование = "6.Участок ок.сб." ИЛИ Стр.Подразделение.Наименование = "7.Участок Вых.контр." Тогда
НоваяСтрока = МатериалыБрака.Добавить();
НоваяСтрока.Количество = Стр.Количество;
НоваяСтрока.Номенклатура = Стр.Номенклатура;
НоваяСтрока.Заказ = Стр.Заказ;
НоваяСтрока.ЕдиницаИзмерения =Стр.ЕдиницаИзмерения;
НоваяСтрока.Коэффициент = Стр.Коэффициент;
НоваяСтрока.Подразделение = Стр.Подразделение;
ИначеЕсли Стр.Подразделение.Наименование = "1.Участок ТП" ИЛИ Стр.Подразделение.Наименование = "4.Участок сборки" тогда
ЗаполнитьМатериалыБракаПоСпецификации(МатериалыБрака, "МатериалыБрака");
КонецЕсли;
КонецЦикла;
Этаформа.ТекущийЭлемент = ЭлементыФормы.МатериалыБрака;
КонецПроцедуры
Показать
Конфигурации под рукой нет, но подозреваю, что процедура "ЗаполнитьМатериалыБракаПоСпецификации" для всей табличной части раскрывает спецификации. Если так, то она делает это столько раз, сколько выполняется ветвь иначеесли.
Если я прав, то в этой процедуре должен быть цикл по строкам ТЧ. В этом случае в ветвь иначе если надо перенести логику из цикла.
Если я прав, то в этой процедуре должен быть цикл по строкам ТЧ. В этом случае в ветвь иначе если надо перенести логику из цикла.
Лучше смотреть не по наименованию, а по коду, подразделения. Идеальный вариант завести регистр сведений на этот случай
Для примера можно попробовать такой вариант.
Для примера можно попробовать такой вариант.
Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
Для каждого Стр из ПродукцияБрака Цикл
Если Стр.Подразделение.наименование = "1.УчастокТП" ИЛИ Стр.Подразделение.наименование ="4.УчастокСборки"Тогда
Продолжить;
КонецЕсли
НоваяСтрока = МатериалыБрака.Добавить();
НоваяСтрока.Количество = Стр.Количество;
НоваяСтрока.Номенклатура = Стр.Номенклатура;
НоваяСтрока.Заказ = Стр.Заказ;
НоваяСтрока.ЕдиницаИзмерения =Стр.ЕдиницаИзмерения;
НоваяСтрока.Коэффициент = Стр.Коэффициент;
НоваяСтрока.Подразделение = Стр.Подразделение;
КонецЦикла;
Ответ = Вопрос("Проверьте правильность заполнения номенклатуры!!!"
+ Символы.ПС + "Продолжить?" + Символы.ПС,
РежимДиалогаВопрос.ДаНет);
Если Не Ответ = КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
Этаформа.ТекущийЭлемент = ЭлементыФормы.МатериалыБрака;
КонецПроцедуры
Показать
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот