Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 08:10

Внутренне перемещение

Автор sail, 17 апр 2011, 16:53

0 Пользователей и 1 гость просматривают эту тему.

sail

Здравствуйте! Подмкажите, пожалуйста: происходит перемещение готовой продукции из кухни на места реализации.Проводка Дт 41.2  Кт 43. Я делаю следующее:
Процедура ОбработкаПроведения()   
   СпрНП=СоздатьОбъект("Справочник.СтавкиНП");
      СписокТоваров = СоздатьОбъект("СписокЗначений");
   ВыгрузитьТабличнуюЧасть(СписокТоваров, "Товар");
   БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
   БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура,СписокТоваров,2);
   БухИт.ИспользоватьСубконто(ВидыСубконто.МестаХранения);
   БухИт.ВыполнитьЗапрос(,ТекущийДокумент(),"41.2, 41.3, 41.4, 43",,,,,"СК");   
   Сч43=СчетПоКоду("43");
   ВыбратьСтроки();
   Пока ПолучитьСтроку()=1 Цикл
   Если Товар.ТипНоменклатуры=Перечисление.ТипыНоменклатуры.Товар Тогда
         Кол = 0;
         Резерв = 0;
         СчетУчета = "";
         СчетПрихода="";
         Если Товар.ТипТовара = Перечисление.ТипыТоваров.Тара Тогда
            СчетУчета = СчетПоКоду("41.3");
            СчетПрихода=СчетПоКоду("41.3");
      ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.ПокупныеИзделия Тогда
            СчетУчета = СчетПоКоду("41.4");
            СчетПрихода=СчетПоКоду("41.2");
      ИначеЕсли Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии Тогда
            СчетУчета = СчетПоКоду("004");
      Иначе
            СчетУчета = СчетПоКоду("41.2");
            СчетПрихода=СчетПоКоду("43");
      КонецЕсли;
      Если Товар.ЭтоГруппа() = 0 Тогда
      Если БухИт.ПолучитьСчет(,СчетУчета) = 1 Тогда
      Если БухИт.ПолучитьСубконто(ВидыСубконто.Номенклатура,,Товар) = 1 Тогда
      Если БухИт.ПолучитьСубконто(ВидыСубконто.МестаХранения,,Откуда) = 1 Тогда
            КоличествоНаСкладе = БухИт.СКД("К");   
            СуммаНаСкладах = Макс(БухИт.СКД("С"), 0);
            Кол = БухИт.СКД("К");                     
            КоличествоНаСкладах = БухИт.СКД("К");
               Если СчетУчета = СчетПоКоду("41.2") Тогда
               СуммаНаСкладах = Макс(БухИт.СКД("С"), 0);
               КоличествоНаСкладах = БухИт.СКД("К");
               КонецЕсли;
               КонецЕсли;
            КонецЕсли;
         КонецЕсли;     
             КонецЕсли;
      Если (Товар.ТипТовара=Перечисление.ТипыТоваров.Собственный) или (Товар.ТипТовара=Перечисление.ТипыТоваров.ПокупныеИзделия) Тогда
         Если Сумма<>0 Тогда
            Операция.НоваяПроводка();
            Операция.СодержаниеПроводки = "Внутр.пер-е(товар)";
            Операция.НомерЖурнала = "ТВ";
            Операция.Дебет.Счет = СчетУчета;
            Операция.Дебет.МестаХранения=Куда;
            Операция.Кредит.Счет = СчетПрихода;
            Если Константа.КоличествоВрознице=Перечисление.Булево.Да тогда
               Операция.Дебет.Номенклатура=Товар;
               Операция.Кредит.Номенклатура=Товар;
               Операция.Количество=Количество;         
            КонецЕсли;   
            Операция.Кредит.МестаХранения=Откуда;
            Операция.Сумма = Сумма;
         КонецЕсли;
                  
   КонецЦикла;
   Операция.Записать();
КонецПроцедуры

Но проводка не формируется, в журналде проводок ее нет. В чем дело?

sail

Подскажите, как это сделать, как работать с отладчиком?

sail

А что в отладчике должно показать? Я так сделала, документ провелся, но в журнале проводок его нет, в отладчике все нормально, никаких ошибок.

prog1c7.7

ты создаешь новую проводку,не операцию (операция.Новая()),
а проводку: Операция.НоваяПроводка()
по этому призаписи не Операция.Записать()
а
Операция.ЗаписатьПроводки();   

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск