Люди помогите с процедурой пожалуйста!нужно исправить!СРОЧНО!!!

1. user1169791 10.09.19 09:24 Сейчас в теме
Всем доброго дня ребят, есть вопрос по поводу автоматического заполнения таблицы документа из другой таблицы!
Вот есть документ в нем две таблицы,есть кнопка для того что бы происходило заполнение из одной таблицы в другую!
ЧТо нужно!
нужно,что бы эта кнопка работала только для тех строк где есть определенное название подразделения!
я пробывал дописать Если но что то не получилось
Процедура ..........................()
Если ПродукцияБрака.Итог("Подразделение") = "1.УчастокТП"  ИЛИ "4.УчастокСборки"  Тогда
........
.........
..........
.............
...........
..........
КонецЕсли;
КонецПроцедуры
Показать


Сама процедура вот такая,какая он сейчас
Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
		Для каждого Стр из ПродукцияБрака Цикл
		НоваяСтрока = МатериалыБрака.Добавить();
		НоваяСтрока.Количество = Стр.Количество;
		НоваяСтрока.Номенклатура = Стр.Номенклатура;
		НоваяСтрока.Заказ = Стр.Заказ;
		НоваяСтрока.ЕдиницаИзмерения =Стр.ЕдиницаИзмерения;
		НоваяСтрока.Коэффициент = Стр.Коэффициент;
		НоваяСтрока.Подразделение = Стр.Подразделение;
	КонецЦикла;
	Ответ = Вопрос("Проверьте правильность заполнения номенклатуры!!!"
	+ Символы.ПС + "Продолжить?" + Символы.ПС,
	РежимДиалогаВопрос.ДаНет);
	Если Не Ответ = КодВозвратаДиалога.Да Тогда
		Возврат;
	КонецЕсли;
	Этаформа.ТекущийЭлемент = ЭлементыФормы.МатериалыБрака;
КонецПроцедуры
Показать


Подскажите пожалуйста,как правильно дописать Процедуру!!
Конфа:Управление производственным предприятием, редакция 1.3 (1.3.111.1)
По теме из базы знаний
Найденные решения
3. omut 10.09.19 09:28 Сейчас в теме
Это всё ужасно. Но уж если так хочется, то должно быть что-то вроде этого:

Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
        Для каждого Стр из ПродукцияБрака Цикл
                Если Стр.Подразделение.Наименование = "1.УчастокТП"  ИЛИ Стр.Подразделение.Наименование = "4.УчастокСборки"  Тогда
...
               КонецЕсли;
        КонецЦикла;
КонецПроцедуры
user1169791; Pavel Rodinchenko; +2 Ответить
4. Liogon 8 10.09.19 09:40 Сейчас в теме
Лучше смотреть не по наименованию, а по коду, подразделения. Идеальный вариант завести регистр сведений на этот случай
Для примера можно попробовать такой вариант.
Процедура ЗаполнитьМатериалыБракаНажатие(Элемент)
       Для каждого Стр из ПродукцияБрака Цикл
Если Стр.Подразделение.наименование = "1.УчастокТП"   ИЛИ Стр.Подразделение.наименование ="4.УчастокСборки"Тогда
Продолжить;
КонецЕсли
        НоваяСтрока = МатериалыБрака.Добавить();
        НоваяСтрока.Количество = Стр.Количество;
        НоваяСтрока.Номенклатура = Стр.Номенклатура;
        НоваяСтрока.Заказ = Стр.Заказ;
        НоваяСтрока.ЕдиницаИзмерения =Стр.ЕдиницаИзмерения;
        НоваяСтрока.Коэффициент = Стр.Коэффициент;
        НоваяСтрока.Подразделение = Стр.Подразделение;
    КонецЦикла;
    Ответ = Вопрос("Проверьте правильность заполнения номенклатуры!!!"
    + Символы.ПС + "Продолжить?" + Символы.ПС,
    РежимДиалогаВопрос.ДаНет);
    Если Не Ответ = КодВозвратаДиалога.Да Тогда
        Возврат;
    КонецЕсли;
    Этаформа.ТекущийЭлемент = ЭлементыФормы.МатериалыБрака;
КонецПроцедуры
Показать
user1169791; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. RustamZz 10.09.19 09:27 Сейчас в теме
ПродукцияБрака.НайтиСтроки(
3. omut 10.09.19 09:28 Сейчас в теме
Это всё ужасно. Но уж если так хочется, то должно быть что-то вроде этого:

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

		КонецЕсли;
	КонецЦикла;
	Этаформа.ТекущийЭлемент = ЭлементыФормы.МатериалыБрака;
КонецПроцедуры
Показать
7. Liogon 8 10.09.19 21:20 Сейчас в теме
Конфигурации под рукой нет, но подозреваю, что процедура "ЗаполнитьМатериалыБракаПоСпецификации" для всей табличной части раскрывает спецификации. Если так, то она делает это столько раз, сколько выполняется ветвь иначеесли.

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

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот