Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 7.7 и ранее

v7: идентификационный код продукции и услуг

v7: идентификационный код продукции и услуг
Я
   Asia2016
 
04.08.21 - 20:37
Ввели ИКПУ.  Дописываю в документах. Создали справочник ИКПУ (код периодический). при заполнении в расходной накладной всех не нулевых остатков, выдает код автоматом. но при выборе по одной позиции выдает ошибку
Конт.КодИКПУ = ит.КодИКПУ;
{Глобальный модуль(557)}: Поле агрегатного объекта не обнаружено (КодИКПУ)
   Asia2016
 
1 - 04.08.21 - 20:38
Процедура Заполнить()
    глОчиститьТабличнуюЧасть(Контекст);
    Если количествоСтрок()>0 Тогда
        Возврат;
    КонецЕсли;    
    //Если Контрагент.Выбран()=0 Тогда Предупреждение ("Выберите Контрагента!");

    //    Возврат;

    //КонецЕсли;


    ВидСубконто = ВидыСубконто.Номенклатура;
    ВыбСчет = "28, 29";
    глЗаполнитьТМЦ(Контекст, Товар, ВидСубконто, ВыбСчет);
    
    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ИспользоватьСубконто(ВидСубконто,,1);
    Ит.ВключатьСубсчета(-1);
    Если (Выбран() = 1) И (Проведен() = 1) Тогда
        Ит.ВыполнитьЗапрос(ТекущийДокумент(), , "004",,,,,);
        Ит.ВыбратьСчета();
        Пока Ит.ПолучитьСчет() = 1 Цикл
            Ит.ВыбратьСубконто(1);
            Пока Ит.ПолучитьСубконто(1) = 1 Цикл
                Если Ит.СНД(3) > 0 Тогда
                    НоваяСтрока();
                    СчетУчета = Ит.Счет;
                    Товар = Ит.Субконто(1);
                    КодИКПУ = Ит.Субконто(1).КодИКПУ.Получить(ДатаДок); 
                    ШтрихКод = Ит.Субконто(1).ШтрихКод.Получить(ДатаДок);
                    Код = Ит.Субконто(1).Код;
                    Остаток = Ит.СНД(3);
                    Себестоимость = Ит.СНД(1) / Остаток;
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    Иначе
        Ит.ВыполнитьЗапрос(, ДатаДок, "004",,,,,);
        Ит.ВыбратьСчета();
        Пока Ит.ПолучитьСчет() = 1 Цикл
            Ит.ВыбратьСубконто(1);
            Пока Ит.ПолучитьСубконто(1) = 1 Цикл
                Если Ит.СКД(3) > 0 Тогда
                    НоваяСтрока();
                    СчетУчета = Ит.Счет;
                    Товар = Ит.Субконто(1);
                    КодИКПУ = Ит.Субконто(1).КодИКПУ.Получить(ДатаДок);  
                    ШтрихКод = Ит.Субконто(1).ШтрихКод.Получить(ДатаДок);;
                    Код = Ит.Субконто(1).Код;
                    Остаток = Ит.СКД(3);
                    Себестоимость = Ит.СКД(1) / Остаток;
                КонецЕсли;
            КонецЦикла;
        КонецЦикла;
    КонецЕсли;
    Если КоличествоСтрок()=0 Тогда
        Предупреждение("На данном складе товаров или продукции нет!");
    КонецЕсли;
    СортироватьСтроки("Товар");

КонецПроцедуры  //Заполнить
   Asia2016
 
2 - 04.08.21 - 20:39
в процедуре заполнить все срабатывает
   Asia2016
 
3 - 04.08.21 - 20:40
Процедура ВыборТовара()
    
    ВидСубконто = ВидыСубконто.Номенклатура;
    ВыбСчет = "28, 29";
    глВыборТМЦ(Контекст, Товар, ВидСубконто, ВыбСчет);        
    
    Ит = СоздатьОбъект("БухгалтерскиеИтоги");
     Ит.ИспользоватьСубконто(ВидСубконто, Товар, 2);

    Ит.ВключатьСубсчета(-1);
    Если (Выбран() = 1) И (Проведен() = 1) Тогда
        Ит.ВыполнитьЗапрос(ТекущийДокумент(), , "004",,,,,);
        Ит.ВыбратьСчета();
        Пока Ит.ПолучитьСчет() = 1 Цикл
            Если Ит.СНД(3) > 0 Тогда
                СчетУчета = Ит.Счет;
                Код = Ит.СНД(3).Код;
                Остаток = Ит.СНД(3);                 
                КодИКПУ = Ит.СНД(3).КодИКПУ.Получить(ДатаДок); 
                ШтрихКод= Ит.СНД(3).ШтрихКод.Получить(ДатаДок);
                Себестоимость = Ит.СНД(1) / Остаток;
            КонецЕсли;
        КонецЦикла;
    Иначе
        Ит.ВыполнитьЗапрос(, ДатаДок, "004",,,,,);
        Ит.ВыбратьСчета();
        Пока Ит.ПолучитьСчет() = 1 Цикл
            Если Ит.СКД(3) > 0 Тогда
                СчетУчета = Ит.Счет;
                Остаток = Ит.СКД(3);
                Код = Ит.СКД(3).Код; 
                КодИКПУ = Ит.СКД(3).ИКПУ.Получить(ДатаДок); 
                ШтрихКод = Ит.СКД(3).ШтрихКод.Получить(ДатаДок);
                Себестоимость = Ит.СКД(1) / Остаток;
            КонецЕсли;
        КонецЦикла;
    КонецЕсли;

КонецПроцедуры  //

при выполнении этого модуля выдает ошибку
   Злопчинский
 
4 - 04.08.21 - 20:43
(3) мозг включаем
                Остаток = Ит.СНД(3);// остток это - число                

                КодИКПУ = Ит.СНД(3).КодИКПУ.Получить(ДатаДок);// КодИКПУ от ЧЕГО хочешь получить?
   Злопчинский
 
5 - 04.08.21 - 20:45
ШтрихКод = Ит.СКД(3).ШтрихКод.Получить(ДатаДок); // аналогично
   Asia2016
 
6 - 04.08.21 - 20:47
   Asia2016
 
7 - 04.08.21 - 20:51
(4) по запарке копирнули. Но через бух итоги тоже не работает. не могу понять почему при заполнении сплошником все идет, а при выборе по каждой позиции не срабатывает.
   Asia2016
 
8 - 04.08.21 - 20:58
вот я тормоз надо ит.субконто (2). спасибо

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.