Имя: Пароль:
1C
1C 7.7
v7: не считает СтоимостьТоваров после перекачки
0 Салин
 
18.07.12
07:35
делаю выгрузку документов через внешнюю обработку из ТиС 906 в Бух 540
документ загружается со всеми реквизитами, но при проведении выдает ошибку
Если (СтоимостьТоваров > 0) или (Количество <> 0) Тогда  
{Документ.ПоступлениеТоваров.Модуль Документа(379)}: Операции сравнения на больше-меньше допустимы только над значениями совпадающих базовых типов (число, строка, дата)

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

Процедура ПостТМЦ_ТБ(Док)  
   Если КодИнициализации=-1 Тогда
       ДокПостП=v7.EvalExpr("СоздатьОбъект(""Документ.ПоступлениеТоваров"")");                  
       ДокументСуществует=0;
       ДокПостП.ВыбратьДокументы(Док.ДатаДокВходящий,Док.ДатаДокВходящий);
       Пока    ДокПостП.ПолучитьДокумент()=1 Цикл
           Если ДокПостП.НомерДок_=Док.НомерДок Тогда
               ДокументСуществует=1;    
               Если ДокПостП.Проведен()=1 Тогда
                   ДокПостП.СделатьНеПроведенным();
               КонецЕсли;    
             Прервать;
           КонецЕсли;
       КонецЦикла;    
       Если ДокументСуществует=0 Тогда
           ДокПостП.Новый();                
           ДокПостП.НомерДок_=Док.НомерДок;
           ДокПостП.ВидПоступления=11;    
           ДокПостП.АвтоВремяНачалоДня();
       КонецЕсли;    
       Если Док.ДатаДокВходящий=ПолучитьПустоеЗначение("Дата")    Тогда
           ДокПостП.ДатаДок=Док.ДатаДок;                
       Иначе    
           ДокПостП.ДатаДок=Док.ДатаДокВходящий;
       КонецЕсли;      
   
       
       КонтрагентТБ(Док.Контрагент,Док.ДатаДок);
       СпрКонтрагентыП.НайтиПоРеквизиту("Код_",Док.Контрагент.Код,1);                
       ДокПостП.Контрагент=СпрКонтрагентыП.ТекущийЭлемент();
       
       СпрДоговорыП=v7.EvalExpr("СоздатьОбъект(""Справочник.Договоры"")");
       ЕстьДоговор=0;
       СпрДоговорыП.ИспользоватьВладельца(СпрКонтрагентыП.ТекущийЭлемент());
       СпрДоговорыП.ВыбратьЭлементы();
       Пока СпрДоговорыП.ПолучитьЭлемент()=1 Цикл
           Если СОКРЛП(СпрДоговорыП.Наименование)=СОКРЛП(Док.Договор.Наименование) Тогда
               ДокПостП.Договор=СпрДоговорыП.ТекущийЭлемент();
           КонецЕсли;
       КонецЦикла;
       ДокПостП.МестоХранения=v7.Константа.ОсновнойСклад;      
       ДокПостП.НомерДокВходящий=Док.НомерДокВходящий;                          
       ДокПостП.ДатаДокВходящий=Док.ДатаДокВходящий;
       ДокПостП.Курс=1;  
       ДокПостП.ТипЦен = v7.глЗначениеПоУмолчанию("ОсновнаяЦенаПриобретения");
       ДокПостП.ЗачитыватьАванс = 0;
         ДокПостП.ВключатьВКнигуПокупок = 1;
       ДокПостП.ВерсияОбъекта = v7.Константа.НомерРелиза  ;
       СпрВариантыРасчетаНалоговП=v7.EvalExpr("СоздатьОбъект(""Справочник.ВариантыРасчетаНалогов"")");      
       СпрВариантыРасчетаНалоговП.ВыбратьЭлементы();
       Пока СпрВариантыРасчетаНалоговП.ПолучитьЭлемент()=1 Цикл
           Если СпрВариантыРасчетаНалоговП.Наименование="НДС сверху 18%" Тогда
               ДокПостП.ВариантРасчетаНалогов=СпрВариантыРасчетаНалоговП.ТекущийЭлемент();
               Прервать;
         КонецЕсли;
       КонецЦикла;  
       ДокПостП.УдалитьСтроки();    
       Док.ВыбратьСтроки();
       Пока Док.ПолучитьСтроку()=1 Цикл
           ДокПостП.НоваяСтрока();
           НоменклатураТБ(Док.Номенклатура,Док.ДатаДок,1);
           СпрНоменклатураП.НайтиПоРеквизиту("Код_",Док.Номенклатура.Код,1);    
           СпрНоменклатураП.СтранаПроисхождения=СОКРЛП(Док.Партия.СтранаПроисхождения.Наименование);
           СпрНоменклатураП.Записать();
           СпрНоменклатураП.НайтиПоРеквизиту("Код_",Док.Номенклатура.Код,1);    
           ДокПостП.Товар=СпрНоменклатураП.ТекущийЭлемент();
           ДокПостП.Количество=Док.Количество;  
           Если Док.Валюта=глДоллары Тогда
               ДокПостП.Цена=(Док.Сумма-Док.СуммаНДС)/Док.Количество*Док.Курс;
           ИначеЕсли Док.Валюта=глРубли Тогда
               ДокПостП.Цена=(Док.Сумма-Док.СуммаНДС)/Док.Количество;
           КонецЕсли;
           ДокПостП.Сумма= ДокПостП.Цена* ДокПостП.Количество ;
           Если Док.Валюта=глДоллары Тогда
               ДокПостП.Сумма=(Док.Сумма-Док.СуммаНДС)*Док.Курс;
           ИначеЕсли    Док.Валюта=глРубли Тогда
               ДокПостП.Сумма=(Док.Сумма-Док.СуммаНДС);
           КонецЕсли;
           Если Док.Валюта=глДоллары Тогда
               ДокПостП.НДС=Док.СуммаНДС*Док.Курс;
           ИначеЕсли    Док.Валюта=глРубли Тогда
               ДокПостП.НДС=Док.СуммаНДС;
       КонецЕсли;    
           Если Док.Валюта=глДоллары Тогда
               ДокПостП.Всего=Док.Сумма*Док.Курс;
           ИначеЕсли    Док.Валюта=глРубли Тогда
               ДокПостП.Всего=Док.Сумма;
           КонецЕсли;    
           СпрГТДП=v7.EvalExpr("СоздатьОбъект(""Справочник.ГТД"")");
           Если СпрГТДП.НайтиПоНаименованию(Док.Партия.ГТД.Наименование,0,1)=0 Тогда
               СпрГТДП.Новый();
               СпрГТДП.Наименование=СОКРЛП(Док.Партия.ГТД.Наименование);      
               СпрГТДП.СтранаПроисхождения=СОКРЛП(Док.Партия.СтранаПроисхождения.Наименование);
               СпрГТДП.Записать();
           КонецЕсли;          
           ДокПостП.ГТД=СпрГТДП.ТекущийЭлемент();          
           СпрСтраныП=v7.EvalExpr("СоздатьОбъект(""Справочник.Страны"")");
           Если СпрСтраныП.НайтиПоНаименованию(Док.Партия.СтранаПроисхождения.Наименование,0,1)=0 Тогда
               СпрСтраныП.Новый();
               СпрСтраныП.Наименование=СОКРЛП(Док.Партия.СтранаПроисхождения.Наименование);
               СпрСтраныП.Записать();
           КонецЕсли;
           ДокПостП.СтранаПроисхождения=СпрСтраныП.ТекущийЭлемент();
       КонецЦикла;    
       ДокПостП.Записать();            
       Если Док.Проведен()=1 Тогда
         //ДокПостП.Провести();
       КонецЕсли;                
   КонецЕсли;    
КонецПроцедуры
1 Amra
 
18.07.12
07:49
1. Заполнить верно личку
2. Выложить фото
3. Ткнуть носом, где в приведенном коде код СтоимостьТоваров > 0
2 KRV
 
18.07.12
07:54
(1) Фото он должен выложить конечно в купальнике? :)))))))))))))))
3 SaM58
 
18.07.12
07:55
(2) "залезла в модуль, если убрать"

наверно все же она
4 KRV
 
18.07.12
07:59
Салин - мужской - "залезла.."  что-то тут не то.. )))
5 Amra
 
18.07.12
08:00
(4) Так перечитай (1) целиком, а не только п.2 )))
6 KRV
 
18.07.12
08:02
(5) что будешь делать, если личка заполнена правильно? ))))
7 Салин
 
18.07.12
08:03
меняла модуль потому, что если "ручками" создать документ - то проводится

а раз проводится - вероятнее всего в файле перекачки косяк
8 Voronve
 
18.07.12
08:03
(6) Скажем где собака порылась и почему выскакивает ошипка
9 big
 
18.07.12
08:04
(8) ищи где СтоимостьТоваров или Количество не приведены к типу число.
10 Салин
 
18.07.12
08:04
салин - это спрей от носа)))))))
11 mehfk
 
18.07.12
08:07
Протелепатирую

ДокПостП.СтоимостьТоваров = 42;
ДокПостП.Записать();            
       Если Док.Проведен()=1 Тогда
12 Салин
 
18.07.12
08:14
нет, не получилось
стоимость расчитывается в ПоступленииТовара
тут - Процедура РассчитатьСтоимостьТоваров(ТаблицаОстатков)
13 Салин
 
18.07.12
08:16
ДокПостП.СтоимостьТоваров = 42;
{D:\1С\ОБРАБОТКА\СВЯЗЬТБ_10.ERT(1103)}: Поле агрегатного объекта не обнаружено (СтоимостьТоваров)

это выдает
14 big
 
18.07.12
08:18
(13) модуль документа покажи, а то телепаты из нас плохие
15 Салин
 
18.07.12
08:20
модуль не меняла, он стандартный

Процедура РассчитатьСтоимостьТоваров(ТаблицаОстатков)
                                                       
   СписокТоваров = СоздатьОбъект("СписокЗначений");
   ВыгрузитьТабличнуюЧасть(СписокТоваров, "Товар");
   
   БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
   БухИт.ИспользоватьСубконто(ВидыСубконто.Номенклатура, СписокТоваров, 2);
   БухИт.ИспользоватьСубконто(ВидыСубконто.Договоры, Договор, 2);
   БухИт.ВыполнитьЗапрос(, ТекущийДокумент(), "45",,,,,"СК");
   
   БухИтНУ = СоздатьОбъект("БухгалтерскиеИтоги");
   БухИтНУ.Опции(1,);
   БухИтНУ.ИспользоватьСубконто(ВидыСубконто.Номенклатура, СписокТоваров, 2);
   
   Если Константа.РассчитыватьВНалоговомУчетеСреднююСтоимостьОтгруженныхТоваровВРазрезеДоговоров.Получить(ДатаДок)=Да Тогда
       БухИтНУ.ИспользоватьСубконто(ВидыСубконто.Основание, Договор);
   КонецЕсли;

   БухИтНУ.ВыполнитьЗапрос(, ТекущийДокумент(), "Н02.04.1, Н02.04.2, Н02.04.3",,,,,"СК");
   
   БухИтКМС = СоздатьОбъект("БухгалтерскиеИтоги");
   БухИтКМС.Опции(1,);
   БухИтКМС.ИспользоватьСубконто(ВидыСубконто.Номенклатура, СписокТоваров, 2);
   БухИтКМС.ИспользоватьСубконто(ВидыСубконто.ДоговорыС_Комитентами,, 1);
   БухИтКМС.ИспользоватьСубконто(ВидыСубконто.ДоговорыС_Комиссионерами, Договор, 2);
   БухИтКМС.ВыполнитьЗапрос(, ТекущийДокумент(), "КМС",,,,,"СК");
   
   ТаблицаОстатков.ВыбратьСтроки();
   Пока ТаблицаОстатков.ПолучитьСтроку() = 1 Цикл
       Если ТаблицаОстатков.Количество <= 0 Тогда
           Продолжить;
       КонецЕсли;                                                                        
       КоличествоПоДокументу = ТаблицаОстатков.Количество;
           
       КоличествоОтгруженныхТоваров = 0;
       СуммаОтгруженныхТоваров = 0;
       
       Если (ТаблицаОстатков.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар)
          и (ТаблицаОстатков.Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии) Тогда
           Если БухИтКМС.ПолучитьСубконто(ВидыСубконто.Номенклатура,, ТаблицаОстатков.Товар) = 1 Тогда
               КоличествоОтгруженныхТоваров = БухИтКМС.СКД("К");
               
               ТаблицаСКомиссионнымиТоварами = СоздатьОбъект("ТаблицаЗначений");
               ТаблицаСКомиссионнымиТоварами.НоваяКолонка("Сумма", "Число");
               ТаблицаСКомиссионнымиТоварами.НоваяКолонка("Количество", "Число");
               ТаблицаСКомиссионнымиТоварами.НоваяКолонка("ДоговорКомиссии");
                                                         
               УчтенноеКоличество = 0;
               
               БухИтКМС.ВыбратьСубконто(ВидыСубконто.ДоговорыС_Комитентами);
               Пока (БухИтКМС.ПолучитьСубконто(ВидыСубконто.ДоговорыС_Комитентами) = 1) и (УчтенноеКоличество <= КоличествоПоДокументу) Цикл
                   ТаблицаСКомиссионнымиТоварами.НоваяСтрока();
                   ТаблицаСКомиссионнымиТоварами.Сумма = БухИтКМС.СКД("С");
                   ТаблицаСКомиссионнымиТоварами.Количество = БухИтКМС.СКД("К");
                   ТаблицаСКомиссионнымиТоварами.ДоговорКомиссии = БухИтКМС.Субконто(ВидыСубконто.ДоговорыС_Комитентами);
                   УчтенноеКоличество = УчтенноеКоличество + ТаблицаСКомиссионнымиТоварами.Количество;
               КонецЦикла;
               ТаблицаОстатков.КомиссионныеТовары = ТаблицаСКомиссионнымиТоварами;
           КонецЕсли;    
           
       ИначеЕсли БухИт.ПолучитьСубконто(ВидыСубконто.Номенклатура,, ТаблицаОстатков.Товар) = 1 Тогда
           КоличествоОтгруженныхТоваров = БухИт.СКД("К");
           СуммаОтгруженныхТоваров = БухИт.СКД("С");
       КонецЕсли;
       
       Если КоличествоОтгруженныхТоваров < КоличествоПоДокументу Тогда
           
           ТекстСообщения = "Ранее отгружено "+КоличествоОтгруженныхТоваров+" "+ТаблицаОстатков.Товар.ЕдиницаИзмерения+
               " из необходимых "+КоличествоПоДокументу+" "+ТаблицаОстатков.Товар.ЕдиницаИзмерения+" товара "+ТаблицаОстатков.Товар;
           Если Константа.КонтрольОтрицательныхОстатков = Да Тогда
               глНеПроводить(Контекст, ТекстСообщения);
               Возврат;
               
           Иначе
               глСообщениеПроведения(ТекстСообщения, ТекущийДокумент(), 0);
           КонецЕсли;
       КонецЕсли;
       
       ТаблицаОстатков.Количество = КоличествоОтгруженныхТоваров;
       ТаблицаОстатков.Всего      = СуммаОтгруженныхТоваров;
       
       // Заполним таблицу по данным налогового учета.
       Если глНовыеПравилаВеденияНУ(ДатаДок) = 1 Тогда
           Если (ТаблицаОстатков.Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Товар)
              и (ТаблицаОстатков.Товар.ТипТовара = Перечисление.ТипыТоваров.НаКомиссии) Тогда
                 Продолжить;
           КонецЕсли;
             
           КоличествоОтгруженныхТоваров = 0;
           СуммаОтгруженныхТоваров      = 0;
           Если БухИтНУ.ПолучитьСубконто(ВидыСубконто.Номенклатура,, ТаблицаОстатков.Товар) = 1 Тогда
               
               Если Константа.РассчитыватьВНалоговомУчетеСреднююСтоимостьОтгруженныхТоваровВРазрезеДоговоров.Получить(ДатаДок)=Да Тогда
                   БухИтНУ.ПолучитьСубконто(ВидыСубконто.Основание,, Договор);
               КонецЕсли;

               КоличествоОтгруженныхТоваров = БухИтНУ.СКД("К");
               СуммаОтгруженныхТоваров = БухИтНУ.СКД("С");
           КонецЕсли;
           
           Если КоличествоОтгруженныхТоваров < КоличествоПоДокументу Тогда
               ТекстСообщения = "По данным налогового учета ранее отгружено "+КоличествоОтгруженныхТоваров+" "+ТаблицаОстатков.Товар.ЕдиницаИзмерения+
               " из необходимых "+КоличествоПоДокументу+" "+ТаблицаОстатков.Товар.ЕдиницаИзмерения+" товара "+ТаблицаОстатков.Товар;
               Если Константа.КонтрольОтрицательныхОстатков = Да Тогда
                   глНеПроводить(Контекст, ТекстСообщения);
                   Возврат;
                   
               Иначе
                   глСообщениеПроведения(ТекстСообщения, ТекущийДокумент(), 0);
               КонецЕсли;
           КонецЕсли;
           ТаблицаОстатков.КоличествоНУ = КоличествоОтгруженныхТоваров;
           ТаблицаОстатков.ВсегоНУ = СуммаОтгруженныхТоваров;
       КонецЕсли;
   КонецЦикла;
   
КонецПроцедуры // РассчитатьСтоимостьТоваров()

ошибку выдает на этой строке
Процедура СформироватьПроводкиДляЦелейНалоговогоУчета(Знач СтоимостьТоваров, ТаблицаОстатков)
   
   Если КодВидаПоступления <= 2 Тогда // поступление от поставщика
       Если (СтоимостьТоваров > 0) или (Количество <> 0) Тогда  
           Операция.НоваяПроводка();
           Операция.НомерЖурнала = "НУ";
           Операция.СодержаниеПроводки = "Поступили товары";
           Операция.ПервичныйДокумент  = глПредставлениеПервичногоДокумента(Контекст);
           Операция.Дебет.Счет = СчН02_02;
           Операция.Дебет.Номенклатура = Товар;
           Операция.Дебет.УсловияПоступленияИВыбытия = Перечисление.УсловияПоступленияИВыбытия.ЗаПлату;
           Операция.Дебет.Основание = Договор;
           Операция.Сумма = СтоимостьТоваров;
           Операция.Количество = Количество;
       КонецЕсли;
                                                               
   // иначе отражается возврат
   ИначеЕсли Количество <> 0 Тогда
       Если Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Продукция Тогда
           СчетУчетаНУ = СчН02_03;
           СчетУчетаОтгрузкиНУ = СчН02_04_2;
           СчетСписанияНУ = СчН07_01;
           СчетВыручкиНУ = СчН06_01;
           
       ИначеЕсли Товар.ТипНоменклатуры = Перечисление.ТипыНоменклатуры.Полуфабрикат Тогда
           СчетУчетаНУ = СчН02_07;
           СчетУчетаОтгрузкиНУ = СчН02_04_3;
           СчетСписанияНУ = СчН07_01;
           СчетВыручкиНУ = СчН06_01;
           
       Иначе //товары
           СчетУчетаНУ = СчН02_02;
           СчетУчетаОтгрузкиНУ = СчН02_04_1;
           СчетСписанияНУ = СчН07_05;
           СчетВыручкиНУ = СчН06_04;
       КонецЕсли;
           
       Операция.НоваяПроводка();
       Операция.НомерЖурнала = "НУ";
       Операция.СодержаниеПроводки = "Возврат";
       Операция.ПервичныйДокумент  = глПредставлениеПервичногоДокумента(Контекст);
       Операция.Количество = -Количество;
       Операция.Кредит.Счет = СчетУчетаНУ;
       Операция.Кредит.Номенклатура = Товар;
       Операция.Кредит.УсловияПоступленияИВыбытия = Перечисление.УсловияПоступленияИВыбытия.Возврат;
       Операция.Кредит.Основание = Договор;
       Если КодВидаПоступления = 3 Тогда // возврат товаров отгруженных
           Операция.Дебет.Счет = СчетУчетаОтгрузкиНУ;
           Операция.Дебет.Номенклатура = Товар;
           Операция.Дебет.УсловияПоступленияИВыбытия = Перечисление.УсловияПоступленияИВыбытия.Возврат;
           Операция.Дебет.Основание = Договор;
           
           // Определим стоимость возвращаемого товара по данным налогового учета.
           Если Количество >= ТаблицаОстатков.КоличествоНУ Тогда
               СтоимостьТоваров = ТаблицаОстатков.ВсегоНУ;
               
           Иначе
               СтоимостьТоваров = Окр(Количество*(ТаблицаОстатков.ВсегоНУ/ТаблицаОстатков.КоличествоНУ), 2, 1);
           КонецЕсли;
   
           // Уменьшим в таблице остаток товаров.
           ТаблицаОстатков.ВсегоНУ      = ТаблицаОстатков.ВсегоНУ - СтоимостьТоваров;
           ТаблицаОстатков.КоличествоНУ = ТаблицаОстатков.КоличествоНУ - Количество;
           
           Операция.Сумма = -СтоимостьТоваров;
           
       Иначе // возврат реализованных товаров
           
           СтоимостьТоваров = ВсегоСтоимостьНУ;
           
           Операция.Сумма = -СтоимостьТоваров;
           
           // При продаже товара, облагаемой ЕНВД, стоимость товаров,
           // и выручка не участвуют в формировании налоговой базы,
           // следовательно это необходимо учесть.
           ПродажаОблагаласьЕНВД = 0;
           Если ДокументОснование.Вид() = "ПродажаВРозницу" Тогда
               Если ДокументОснование.ПродажаОблагаетсяЕНВД = 1 Тогда
                   ПродажаОблагаласьЕНВД = 1;
               КонецЕсли;
           КонецЕсли;
           Если ПродажаОблагаласьЕНВД = 0 Тогда
               Операция.Дебет.Счет = СчетСписанияНУ;
               
               // Состорнируем выручку
               ВыручкаБезНалогов = Всего - НДС - НП;
               Если ЦеныВДоговоре = 2 Тогда
                   ВыручкаБезНалогов = ВыручкаБезНалогов*Курс/Кратность;
               КонецЕсли;
       
               Если ВыручкаБезНалогов > 0 Тогда
                   Операция.НоваяПроводка();
                   Операция.НомерЖурнала = "НУ";
                   Операция.СодержаниеПроводки = "Сторнирование выручки";
                   Операция.ПервичныйДокумент  = глПредставлениеПервичногоДокумента(Контекст);
                   Операция.Кредит.Счет = СчетВыручкиНУ;
                   Операция.Кредит.Номенклатура = Товар;
                   Операция.Кредит.УсловияПоступленияИВыбытия = Перечисление.УсловияПоступленияИВыбытия.Возврат;
                   Операция.Кредит.Основание = Договор;
                   Операция.Сумма = -ВыручкаБезНалогов;
                   Операция.Количество = -Количество;
               КонецЕсли;
           КонецЕсли;
       КонецЕсли;
   КонецЕсли;
   
КонецПроцедуры // СформироватьПроводкиДляЦелейНалоговогоУчета()
16 1Сергей
 
18.07.12
08:25
не видно откуда вызывается СформироватьПроводкиДляЦелейНалоговогоУчета
17 Салин
 
18.07.12
08:29
// Отражение в налоговом учете поступления товаров.
           Если СчетУчета <> Сч004 Тогда // не комиссионный товар
               Если глНовыеПравилаВеденияНУ(ДатаДок) = 1 Тогда
                   Если ЦеныВДоговоре = 2 Тогда
                       Если ВестиУчетРасчетовУЕ = 1 Тогда
                           СтоимостьТоваровДляНалоговогоУчета = СтоимостьТоваровРуб - СуммоваяРазницаДляСтоимости;
                           
                       Иначе
                           
                           Если УчитыватьДоходыИРасходыВНУПоКурсуАвансов = Да Тогда
                               СтоимостьТоваровДляНалоговогоУчета = СтоимостьТоваровРуб;
                           Иначе
                               СтоимостьТоваровДляНалоговогоУчета = СтоимостьТоваров*Курс/Кратность;
                           КонецЕсли;
                           
                           Если (ОплатаДоговора = 2) и (ДатаДок >= '01.01.2008') Тогда
                               НПРКурсоваяРазница =  Окр(СтоимостьТоваровРуб, 2) - Окр(СтоимостьТоваровДляНалоговогоУчета, 2);
                           КонецЕсли;
                       КонецЕсли;
                       
                   Иначе
                       СтоимостьТоваровДляНалоговогоУчета = СтоимостьТоваров;
                   КонецЕсли;    
                   
                   СформироватьПроводкиДляЦелейНалоговогоУчета(СтоимостьТоваровДляНалоговогоУчета, ТаблицаОстатков);
                   глОтражениеСуммовыхРазницВНаловомУчете(Контекст, -СуммоваяРазницаДляСтоимости, 0);
                   
                   //********************************************************************
                   //Проводки по расчетам в вал.
                   Если (Константа.ПрименяетсяПБУ18.Получить(ДатаДок) = Да) Тогда
                       Если КодВидаПоступления <= 2 Тогда // поступление от поставщика
                           Если (ОплатаДоговора = 2) и (ДатаДок >= '01.01.2008') Тогда
                               Если НПРКурсоваяРазница <> 0 Тогда
                                   Операция.НоваяПроводка();
                                   Операция.НомерЖурнала = "НУ";
                                   Операция.ПервичныйДокумент  = глПредставлениеПервичногоДокумента(Контекст);
                                   Операция.Дебет.Счет = СчНПР;
                                   Операция.Дебет.Субконто(1, Товар);
                                   Операция.Сумма = НПРКурсоваяРазница;
                                   Операция.СодержаниеПроводки = "Разница в оценке товаров";
                               КонецЕсли;    
                           КонецЕсли;    
                       КонецЕсли;    
                   КонецЕсли;
                   //********************************************************************
               КонецЕсли;
           КонецЕсли;
18 Салин
 
18.07.12
08:34
Проблема то в том что при создании документа через выгрузку выдает эту ошибку, а при создании "ручками" ее нет
рекивзиты заполнены и в первом и во втором случае одинаковые
19 1Сергей
 
18.07.12
08:34
(17)

                           СтоимостьТоваровДляНалоговогоУчета = СтоимостьТоваровРуб - СуммоваяРазницаДляСтоимости;
...                            
                               СтоимостьТоваровДляНалоговогоУчета = СтоимостьТоваровРуб;
...
                               СтоимостьТоваровДляНалоговогоУчета = СтоимостьТоваров*Курс/Кратность;
...
                       СтоимостьТоваровДляНалоговогоУчета = СтоимостьТоваров;


Откуда берутся СтоимостьТоваров, СтоимостьТоваровРуб, СуммоваяРазницаДляСтоимости?

Разбирайся сама. Не будем же мы из тебя всё вытягивать
20 Салин
 
18.07.12
08:36
СтоимостьТоваров прописано в (15)
21 1Сергей
 
18.07.12
08:39
(20) не вижу. У тебя до входа в процедуру СформироватьПроводкиДляЦелейНалоговогоУчета должна уже существовать СтоимостьТоваров
22 Zmich
 
18.07.12
08:40
(18). А как ТаблицаОстатков формируется?
Судя по всему, какой-то обязательный к заполнению реквизит всё же не заполнен, что-то типа вида операции, например.
23 Zmich
 
18.07.12
08:41
(22)+ Посмотри, что заполняется в процедуре ВводНового() в модуле формы этого документа, и тот же код повтори в обработке загрузки для новых документов.
24 Салин
 
18.07.12
08:42
вид операции есть(((
25 1Сергей
 
18.07.12
08:42
(24) ты программист или как?
26 Салин
 
18.07.12
08:46
я бух
27 1Сергей
 
18.07.12
08:47
(26) о_О а почему бы Вам не пригласить специалиста?
28 Салин
 
18.07.12
08:47
ВводНового учла еще в (1)

Процедура ВводНового(Копирование) //предопределенная
   
   Новый = 1;
   ВерсияОбъекта = Константа.НомерРелиза;
   Если Копирование = 1 Тогда //копирование документа
       Возврат;
   КонецЕсли;
   
   //Для ввода нового документа из журнала "Счета-фактуры выданные"
   //в качестве параметра передается контрагент.
   Если ПустоеЗначение(Форма.Параметр) = 0 Тогда
       Контрагент = Форма.Параметр.Получить("Контрагент");
   КонецЕсли;
   
   МестоХранения = глЗначениеПоУмолчанию("ОсновнойСклад");
   ТипЦен = глЗначениеПоУмолчанию("ОсновнаяЦенаПриобретения");
   ВидПоступления = 11; //на оптовый склад
   ЗачитыватьАванс = 0;
   ВариантРасчетаНалогов = Константа.ОсновнойВариантРасчетаНалогов;
   ПокупателемВыставляетсяСчетФактураНаВозврат = 1;
   ВариантОтраженияВозврата = 1;
   Если Константа.ОрганизацияЯвляетсяПлательщикомНДС = Нет Тогда
       НДСвключатьВСтоимость = 1;
   КонецЕсли;
КонецПроцедуры //ВводНового
29 1Сергей
 
18.07.12
08:49
а вообще, отладчик рулит.
Для начала проверить какой тип имеет переменная СтоимостьТоваров в

Если (СтоимостьТоваров > 0) или (Количество <> 0) Тогда

и дальше искать почему она не число
30 Zmich
 
18.07.12
09:01
Если СпрВариантыРасчетаНалоговП.Наименование="НДС сверху 18%" Тогда

- плохой вариант, не будет работать, используй СокрЛП или НайтиПоНаименованию
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.