8.х УПП 8.1 ПараметрыВыпускаПродукции как заполнить программно?

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Badim, 6 июл 2010.

  1. TopicStarter Overlay
    Badim
    Offline

    Badim

    Регистрация:
    20 ноя 2009
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    в подробностях задача (упрощенная) выглядит вот так

    есть спецификация на стеклопакет, который состоит из трех компонент, расход которых определяется геометрией стеклопакета
    [screencast.com/t/NzJhZWE5ODkt »»]

    В заказе на производство менеджер должен указать геометрию (длину-ширину) стеклопакета, для дальнейшего списания материалов. Штатно это можно сделать только зайдя в параметры, добавить два вида параметра и указать их значения.
    Сколько лишних действий! А выпускается не один стеклопакет в день!

    Поэтому я добавил в стандартную форму два поля Длина-Ширина, значения которых копируются в "параметры выпускаемой продукции"
    [screencast.com/t/OTUxOGE1 »»]
    и далее используются при списании в спецификации


    КОД КОПИРОВАНИЯ ПАРАМЕТРОВ:

    Код:
    Для Каждого СтрокаТабличнойЧасти Из Продукция <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span>
    
    ПараметрыВыпуска = Новый Соответствие;
    
    Для Каждого ПараметрВыпуска из ПараметрыВыпускаПродукции Цикл
    
    Если ПараметрВыпуска.КлючСвязи = СтрокаТабличнойЧасти.КлючСвязи Тогда
    
    Если ПараметрВыпуска.ВидПараметра.Наименование = "Ширина" Тогда
    ПараметрВыпуска.Значение = СтрокаТабличнойЧасти.Ширина	
    КонецЕсли;	
    
    Если ПараметрВыпуска.ВидПараметра.Наименование = "Длина" Тогда
    ПараметрВыпуска.Значение = СтрокаТабличнойЧасти.Длина	
    КонецЕсли;	
    
    КонецЕсли;
    
    КонецЦикла;
    
    КонецЦикла;
    
    Вопрос: как для новой позиции добавить параметр в "ПараметрВыпускаПродукции" программно?
  2. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.646
    Симпатии:
    948
    Баллы:
    204
    Всмысле? вам еще надо программно добавить еще и высоту? И вообще в каком объекте и где прописан код, который привели?
  3. TopicStarter Overlay
    Badim
    Offline

    Badim

    Регистрация:
    20 ноя 2009
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Прошу прощения если не все описал.

    Речь идет о "Заказе на производство"
    в него я добавил два поля "Длина" и "Ширина". На событие "После изменения" добавил копирование данных из полей "Ширина" и "Длина" в соответствующие "параметры выпуска продукции".

    Приведенный код, это как раз фрагмент указанного копирования.

    Но никак не могу разрешить следующую задачу: Если у строчки продукции еще нет параметров выпуска, то их надо добавить, только вот как?

    Подскажите строчки кода, т.е. в справочник "Параметры выпуска продукции" надо добавить еще записи
    :unsure:
  4. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.646
    Симпатии:
    948
    Баллы:
    204
    Ну то же не понятно в чем трудность

    если нет элемента то

    Код:
    НовыйОбъект = Справочники.ПараметрыВыпускаПродукции.СоздатьЭлемент();
    НовыйОбъект.Комментарий="Новй элемент";
    ///остальные реквизиты
    стр=НовыйОбъект.Параметры.Добавить()//создаем строку табличной части параметры
    стр.ВидПараметра=; ///заполняем ее
    стр.Значение=;
    
    НовыйОбъект.Записать();
    
  5. TopicStarter Overlay
    Badim
    Offline

    Badim

    Регистрация:
    20 ноя 2009
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Спасибо, с толкнул с мертвой точки, а то тупил...

    но похоже я ошибся справочником.

    в ЗаказеНаПРоизводство данные о параметрах выпуска пишутся куда то в другое место...

    Воспользовался примером Draco, Данные записались, но не связались с конкретным заказом. И вообще в справочнике они оказались единственными. Хотя я через формы в ручную на создавал много параметров выпуска продукции.
  6. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.646
    Симпатии:
    948
    Баллы:
    204
    Всмысле? там есть ТЧ параметры выпуска и они пишутся туда...


    т.е в спавочнике никаких элементов нет? коме тех что создали.? И что вы понимаетет под связью. Если вы хотите что бы созданный элемент был в ТЧ, так добавьте его туда вы же сам элемент создали и ссыка у вас на него есть
  7. TopicStarter Overlay
    Badim
    Offline

    Badim

    Регистрация:
    20 ноя 2009
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Точно, куда то данные пишуться не туда. Вчераз весь день искал, не нашел.

    Справочник "Параметры выпуска продукции" - пуст!

    Картинка

    Хотя данные заносятся, значит они заносятся не в этот справочник а куда то еще.
  8. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.646
    Симпатии:
    948
    Баллы:
    204
    Ну если вы имеете ввиду то что у вас на картинке Ввод параметров выпуска продукции, то это вообще обработка. для заполнеия ТЧ
  9. TopicStarter Overlay
    Badim
    Offline

    Badim

    Регистрация:
    20 ноя 2009
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Ну да, когда вводишь "Параметры выпуска продукции", то в какой справочник они попадают?

    Мне надо не через это дополнительное окно водить данные а сразу из формы для ввода "Заданий на производство"
  10. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.646
    Симпатии:
    948
    Баллы:
    204
    Можно глянуть код как вы это делаете?
  11. TopicStarter Overlay
    Badim
    Offline

    Badim

    Регистрация:
    20 ноя 2009
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Пока рабочей версии нет :unsure:

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

    вот форма которая у меня есть "Заказ на производство"

    Задача: значения полей "Ширина", "Длина" должны копироваться в соответствующие поля "Параметров выпуска продукции"

    Если эти поля уже существуют, то из можно легко изменить:


    [​IMG]

    Код:
    Процедура ПродукцияШиринаПриИзменении(Элемент)
    // Вставить содержимое обработчика.
    СтрокаШирина = 	ЭлементыФормы.Продукция.Колонки.Ширина.ЭлементУправления.значение;	
    СтрокаДлина = ЭлементыФормы.Продукция.Колонки.Длина.ЭлементУправления.значение;	
    
    
    Для Каждого СтрокаТабличнойЧасти Из Продукция <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span>
    
    Если СтрокаТабличнойЧасти.КлючСвязи = 0 тогда
    
    НовыйОбъект = Справочники.ПараметрыВыпускаПродукции.СоздатьЭлемент();
    НовыйОбъект.Комментарий="Новый элемент";
    
    ///остальные реквизиты
    стр=НовыйОбъект.Параметры.Добавить();//создаем строку табличной части параметры
    стр.ВидПараметра="Ширина"; ///заполняем ее
    стр.Значение=СтрокаТабличнойЧасти.Ширина;
    
    НовыйОбъект.Записать();
    
    КонецЕсли;   
    
    Для Каждого ПараметрВыпуска из ПараметрыВыпускаПродукции Цикл
    
    Если ПараметрВыпуска.КлючСвязи = СтрокаТабличнойЧасти.КлючСвязи Тогда
    
    
    Если ПараметрВыпуска.ВидПараметра.Наименование = "Ширина" Тогда
    ПараметрВыпуска.Значение = СтрокаТабличнойЧасти.Ширина;	
    КонецЕсли;	
    
    Если ПараметрВыпуска.ВидПараметра.Наименование = "Длина" Тогда
    ПараметрВыпуска.Значение = СтрокаТабличнойЧасти.Длина;	
    КонецЕсли;	
    
    
    КонецЕсли;
    
    КонецЦикла;
    
    КонецЦикла;
    
    
    if (СтрокаДлина > 0) and (СтрокаШирина > 0) then
    
    ЭлементыФормы.Продукция.Колонки.Количество.ЭлементУправления.значение = (СтрокаДлина * СтрокаШирина)/1000000;
    Сообщить ("Площадь =  " + ЭлементыФормы.Продукция.Колонки.Количество.ЭлементУправления.значение);
    endif
    
    КонецПроцедуры
    
    
    Но если у номенклатуры еще нет "ПараметровВыпуска", то я незнаю как их создать?
  12. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.646
    Симпатии:
    948
    Баллы:
    204
    Я так понимаю это код из документа, а не обработки? и в чем его смысл что то не догоню с утра.
  13. TopicStarter Overlay
    Badim
    Offline

    Badim

    Регистрация:
    20 ноя 2009
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Правильно, это из документа "Заказ на производство"

    на изменение поля "Ширина" (такое же надо потом повесить на поле "Длина")

    логика следующая:
    Если внесены данные в поле, тогда

    1. Скопировать внесенные данные в "параметры выпуска продукции", что бы пом их использовать при расчете спецификации

    2. Рассчитать площадь конструкции, чтобы рассчитать цену конструкции (цена идет за квадратный метр)

    --------------------------
  14. Draco
    Online

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.646
    Симпатии:
    948
    Баллы:
    204
    Ну я так понял, как только вы в форме заказа на производство меняете ширину или длину то пересчитывается количество.,ну тепереь в чем проблема встает. я так понимаю при всем этом обработка ввода параметров никак не учавствует. На форме же поменяли и там же все пересчиталось
  15. TopicStarter Overlay
    Badim
    Offline

    Badim

    Регистрация:
    20 ноя 2009
    Сообщения:
    16
    Симпатии:
    0
    Баллы:
    1
    Просто эта форма и форма "параметров выпуска" никак не связаны!

    Задача состоит в передачи данных внесенных из этой формы в форму "параметры выпуска продукции"

Поделиться этой страницей