Автоматический добавление номенклатуры товара при создании документа

1. 2sw 18 28.05.12 17:30 Сейчас в теме
Есть задача (кнопка или пункт в меню), чтобы при открытии документа "реализация" автоматически в табличную часть сразу включалась нужная номенклатура (по коду или артикулу).
Подскажите плз что добавить в модуль и какую задачу повесить на кнопку.
Спасибо ;)
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. baldorc 4 28.05.12 17:44 Сейчас в теме
Если при открытии документа, то в процедуру формы "ПриОткрытии" в конец добавить след кусок кода

    СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
    Код = "00000231";
    Если СпрНоменклатура.НайтиПоКоду(Код, 0) <> 0 Тогда
        НоваяСтрока();
        Номенклатура = СпрНоменклатура.ТекущийЭлемент();
        Количество = 1;
        Цена = 20;
        //и так далее, остальные реквизиты табличсной части
    КонецЕсли;

Показать

если нужно добавлять строчку только при создании нового документа, тогда этот кусок кода надо добавить в предопределенную процедуру модуля формы "ВводНового"

или, на худой конец, поместить этот код в процедуру с названием, например ДобавитьТовар(), добавить на форму кнопку и у кнопки, в поле "дополнительно", прописать название процедуры ДобавитьТовар()
вот как-то так :)
4. 2sw 18 28.05.12 18:34 Сейчас в теме
если такую задачу повесить на кнопку


ОткрытьФорму("Документ.Реализация", "ДобавитьТовар")

Если ПустоеЗначение(Форма.Параметр)=0 Тогда
        Если Форма.Параметр = "ДобавитьТовар" Тогда  
//код (2) baldorc
                   СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
                   Код = "00000231";
                           Если СпрНоменклатура.НайтиПоКоду(Код, 0) <> 0 Тогда
                           НоваяСтрока();
                           Номенклатура = СпрНоменклатура.ТекущийЭлемент();
                           Количество = 1;
                           Цена = 20;
      //и так далее, остальные реквизиты табличсной части
                           КонецЕсли;

        КонецЕсли;
    Иначе
Показать
...
6. 2sw 18 28.05.12 18:48 Сейчас в теме
:D Все получилось

добавил кнопку меню, повесил задачу
ОткрытьФорму("Документ.Реализация", "ДобавитьТовар")


вот итоговый модуль
// предопределенная процедура
Процедура ВводНового(Скопирован)
                      
    глЗаполнитьШапку(Контекст, Скопирован,"Продажа");
    
    Если Скопирован = 1 Тогда
        ПересчетСуммыВзаиморасчетов();
        Возврат;
    КонецЕсли;
    
    Если ПустоеЗначение(Форма.Параметр)=0 Тогда
        Если Форма.Параметр = "Комиссия" Тогда  
            КодОперации        = Перечисление.КодыОпераций.ПередачаНаРеализацию;
        Иначе
            КодОперации        = Перечисление.КодыОпераций.Продажа;
        КонецЕсли;  

        //sw
        Если Форма.Параметр = "ДобавитьТовар" Тогда  
//код (2) baldorc
                   СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
                   //заправка картриджа
                   Код = "DS001986";
                           Если СпрНоменклатура.НайтиПоКоду(Код, 0) <> 0 Тогда
                           НоваяСтрока();
                           Номенклатура = СпрНоменклатура.ТекущийЭлемент();
                           Количество = 1;
                           Цена = 300;
      //и так далее, остальные реквизиты табличсной части
                           КонецЕсли;

      КонецЕсли;    
        
    Иначе
        КодОперации    = Перечисление.КодыОпераций.Продажа;
    КонецЕсли;    
    
    // Документы оптовой торговли можно оформлять только с оптового склада
    Если (Склад.РозничныйСклад = 1) Тогда
        Склад = "";
    КонецЕсли;              
    
КонецПроцедуры // ВводНового()   

Показать


;)
7. baldorc 4 29.05.12 13:18 Сейчас в теме
(6) 2sw, да, вполне нормально получилось
3. 2sw 18 28.05.12 17:55 Сейчас в теме
Большое спасибо за столь подробный ответ!
Буду мучать кнопки и модуль. ;)

зы. А можно ли сделать вызов этой процедуры по кнопке панели иструментов, например через задачу:

ОткрытьФорму("Документ.Реализация", ".....")

Как инициализировать вызов этой процедуры только при условии нажатия определенной кнопки меню?
5. baldorc 4 28.05.12 18:38 Сейчас в теме
добавить в меню пункт(или на панель кнопку) Задача с командой "Задача.Выполнить" в поле "формула" на закл "параметры" прописать что-то такое
ОткрытьФорму("Документ.Реализация", "ой")

вышеуказанный код трансформируется в
Если Форма.Параметр = "ой" Тогда
   СпрНоменклатура = СоздатьОбъект("Справочник.Номенклатура");
   Код = "00000231";
   Если СпрНоменклатура.НайтиПоКоду(Код, 0) <> 0 Тогда
      НоваяСтрока();
      Номенклатура = СпрНоменклатура.ТекущийЭлемент();
      Количество = 1;
      Цена = 20;
      //и так далее, остальные реквизиты табличной части
   КонецЕсли;
КонецЕсли;
Показать

и поместить его лучше в ВводНового
Оставьте свое сообщение

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