Имя: Пароль:
1C
1С v8
Загрузка реализации в УТ 11
,
0 anisa8310
 
10.12.13
09:41
1С:Предприятие 8.2 (8.2.18.104)
Управление торговлей, редакция 11.1 (11.1.2.9)

пишу загрузку..есть файл с контрагентами есть с номенклатурой. Номенклатура везде одинакова в ТЧ. и 353 накладных нужно сделать.контрагент оодин грузополучатели разные (но это не суть)
Проблема возникла с заполнением в ТЧ. 1) количество не загружает (но сумму перемножает) -если в ручную единицы проставляю(ну так для теста) макет не выводит ошибка:{Документ.РеализацияТоваровУслуг.МодульМенеджера(4486)}: Ошибка при вызове метода контекста (ВыполнитьПакет)
    МассивРезультатов         = Запрос.ВыполнитьПакет();
по причине:
Ошибка выполнения запроса
по причине:
Ошибка при выполнении операции над данными:
Ошибка SQL: Деление на 0
по причине:
Ошибка SQL: Деление на 0
по причине:
Деление на 0

Вот загрузчик:


Процедура КнопкаВыполнитьНажатие(Кнопка)
    
/////////////открытие xls-документа    
    Док = ПолучитьCOMОбъект(Путь1);
    Товар = ПолучитьCOMОбъект(Путь2);
    счСтроки = 1;
    счСтроки1=1;
/////////////////////////Перебор строк    

Пока Док.Sheets(1).Cells(счСтроки,1).Value <>Неопределено Цикл
    Стр=Док.Sheets(1).Cells(счСтроки,1).Value;    
    //////////////Формирование массива загрузки данных элемента контрагенты    
    Массив = Новый Массив(2);
           Для Сч=1 По 2 Цикл
            Позиция = Найти(Стр, "|");
            Массив.Вставить(сч,Сред(Стр, 1, Позиция-1));
            стр = Сред(Стр, Позиция + 1);
           КонецЦикла;

//Создаем партнера
             Партнер = Справочники.Партнеры.СоздатьЭлемент();
             Партнер.НаименованиеПолное = Строка(Массив[1]);
             Партнер.Наименование = Строка(Массив[1]);
             Партнер.Клиент =Истина;
             Партнер.Адрес=Строка(Массив[2]);
             Партнер.ЮрФизЛицо=Перечисления.КомпанияЧастноеЛицо.Компания;
             Партнер.Записать();

          
          
//Создаем контрагента      
              Контрагент = Справочники.Контрагенты.СоздатьЭлемент();
              Контрагент.Наименование = Строка(Массив[1]);
              Контрагент.НаименованиеПолное = Строка(Массив[1]);
              Контрагент.Адрес = Строка(Массив[2]);
              Контрагент.Партнер =партнер.Ссылка;
              Контрагент.ЮрФизЛицо=Перечисления.ЮрФизЛицо.ЮрЛицо;
              Контрагент.ДополнительнаяИнформация = "Загруженные данные";
              Контрагент.Записать();
              
                //Создаю договор контрагента
                    Договор=Справочники.ДоговорыКонтрагентов.СоздатьЭлемент();
                    Договор.Контрагент=Контрагент.Ссылка;
                    Договор.Организация =Справочники.Организации.НайтиПоНаименованию("Управленческая организация").Ссылка;
                    Договор.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоНаименованию("RUB");
                    Договор.ПорядокОплаты=Перечисления.ПорядокОплатыПоСоглашениям.РасчетыВРубляхОплатаВРублях;
                    Договор.Статус=Перечисления.СтатусыДоговоровКонтрагентов.НеСогласован;
                    Договор.Наименование="Государственный контракт №212 от 5.12.2013";
                    Договор.Партнер=партнер.Ссылка;;
                    Договор.ПорядокРасчетов=Перечисления.ПорядокРасчетов.ПоЗаказамНакладным;
                    Договор.Менеджер=Справочники.Пользователи.НайтиПоНаименованию("Администратор");
                    Договор.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
                    Договор.ТипДоговора=Перечисления.ТипыДоговоров.СПокупателем;
                    Договор.Согласован = Истина;
                    Договор.Комментарий = "Загружено автоматически";
                    ПредставлениеТипа = НСтр("ru='Договор с клиентом");
                    Договор.Записать();
                    
                    //Создаю новый документ
                    НовыйДокумент = Документы.РеализацияТоваровУслуг.СоздатьДокумент();
                    НовыйДокумент.Дата = ТекущаяДата();
                    НовыйДокумент.Партнер = Партнер.Ссылка;
                    НовыйДокумент.Контрагент = Контрагент.Ссылка;
                    НовыйДокумент.Статус = Перечисления.СтатусыРеализацийТоваровУслуг.КОтгрузке;
                    НовыйДокумент.Организация = Организация;
                    НовыйДокумент.Склад = Склад;
                    НовыйДокумент.Договор = Договор.Ссылка;
                    НовыйДокумент.Менеджер = Справочники.Пользователи.НайтиПоНаименованию("Апакова Аделя Радиковна");
                    НовыйДокумент.Подразделение = Справочники.СтруктураПредприятия.НайтиПоКоду("УТ-000004");
                    НовыйДокумент.ДатаПлатежа = ТекущаяДата();
                    НовыйДокумент.ФормаОплаты = Перечисления.ФормыОплаты.Безналичная;
                    НовыйДокумент.Валюта = Справочники.Валюты.НайтиПоКоду("643");
                    НовыйДокумент.ХозяйственнаяОперация = Перечисления.ХозяйственныеОперации.РеализацияКлиенту;
                    НовыйДокумент.НалогообложениеНДС = Перечисления.ТипыНалогообложенияНДС.ПродажаОблагаетсяНДС;
                    НовыйДокумент.ЦенаВключаетНДС = Истина;
                    НовыйДокумент.ВалютаВзаиморасчетов = Справочники.Валюты.НайтиПоКоду("643");
                    НовыйДокумент.БанковскийСчетОрганизации =СчетОрг;
                    НовыйДокумент.Комментарий = "Загрузка";
                    
                    
                    Пока Товар.Sheets(1).Cells(счСтроки1,1).Value <>Неопределено Цикл
    Стр=Товар.Sheets(1).Cells(счСтроки1,1).Value;    
    //////////////Формирование массива загрузки данных элемента контрагенты    
    Массив = Новый Массив(3);
           Для Сч=1 По 3 Цикл
            Позиция = Найти(Стр, "|");
            Массив.Вставить(сч,Сред(Стр, 1, Позиция-1));
            стр = Сред(Стр, Позиция + 1);
           КонецЦикла;

          
           ТоварДока = НовыйДокумент.Товары.Добавить();
           ТоварДока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Массив[1]);
           ТоварДока.Количество =Число(Массив[2]);
           ТоварДока.Цена = Массив[3];
           ТоварДока.Сумма = ТоварДока.Количество*ТоварДока.Цена;
           ТоварДока.СтавкаНДС = Перечисления.СтавкиНДС.НДС18;
           ТоварДока.Склад = Склад;
           ТоварДока.ЗаказКлиента = ЗакКлиента;
                    
счСтроки1=счСтроки1+1;
НовыйДокумент.Записать();
КонецЦикла;                    
счСтроки = счСтроки + 1;
    
КонецЦикла;
  
//////////закрываем документ
Док.Application.Quit();
    
КонецПроцедуры

Заранее всем спасибо помогите пожалуйста кто знает что делать..какой коэфициент ей нужен...куда его прописать...
1 anisa8310
 
10.12.13
10:03
вот запрос где ошибку ловит при формировании печ формы ТОРГ12
Запрос.Текст =
    "ВЫБРАТЬ
    |    РеализацияТоваровУслуг.Ссылка КАК Ссылка,
    |    РеализацияТоваровУслуг.Номер КАК Номер,
    |    РеализацияТоваровУслуг.Дата КАК Дата,
    |    РеализацияТоваровУслуг.Партнер КАК Партнер,
    |    РеализацияТоваровУслуг.Контрагент КАК Контрагент,
    |    РеализацияТоваровУслуг.Организация КАК Организация,
    |    ТаблицаОтветственныеЛица.РуководительНаименование КАК Руководитель,
    |    ТаблицаОтветственныеЛица.РуководительДолжность КАК ДолжностьРуководителя,
    |    ТаблицаОтветственныеЛица.ГлавныйБухгалтерНаименование КАК ГлавныйБухгалтер,
    |    РеализацияТоваровУслуг.Отпустил.Наименование КАК Кладовщик,
    |    РеализацияТоваровУслуг.ОтпустилДолжность КАК ДолжностьКладовщика,
    |    РеализацияТоваровУслуг.Организация.Префикс КАК Префикс,
    |    РеализацияТоваровУслуг.Основание КАК Основание,
    |    ВЫБОР
    |        КОГДА РеализацияТоваровУслуг.Грузополучатель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
    |            ТОГДА РеализацияТоваровУслуг.Контрагент
    |        ИНАЧЕ РеализацияТоваровУслуг.Грузополучатель
    |    КОНЕЦ КАК Грузополучатель,
    |    ВЫБОР
    |        КОГДА РеализацияТоваровУслуг.Грузоотправитель = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)
    |            ТОГДА РеализацияТоваровУслуг.Организация
    |        ИНАЧЕ РеализацияТоваровУслуг.Грузоотправитель
    |    КОНЕЦ КАК Грузоотправитель,
    |    РеализацияТоваровУслуг.БанковскийСчетОрганизации КАК БанковскийСчетОрганизации,
    |    РеализацияТоваровУслуг.БанковскийСчетКонтрагента КАК БанковскийСчетКонтрагента,
    |    РеализацияТоваровУслуг.БанковскийСчетГрузоотправителя КАК БанковскийСчетГрузоотправителя,
    |    РеализацияТоваровУслуг.БанковскийСчетГрузополучателя КАК БанковскийСчетГрузополучателя,
    |    РеализацияТоваровУслуг.АдресДоставки КАК АдресДоставки,
    |    НЕОПРЕДЕЛЕНО КАК Подразделение,
    |    РеализацияТоваровУслуг.Валюта КАК Валюта,
    |    РеализацияТоваровУслуг.ДоверенностьНомер КАК ДоверенностьНомер,
    |    РеализацияТоваровУслуг.ДоверенностьДата КАК ДоверенностьДата,
    |    РеализацияТоваровУслуг.ДоверенностьВыдана КАК ДоверенностьВыдана,
    |    РеализацияТоваровУслуг.ДоверенностьЛицо КАК ДоверенностьЛицо,
    |    &ЕдиницаИзмеренияВеса КАК ЕдиницаИзмеренияВеса,
    |    РеализацияТоваровУслуг.Менеджер,
    |    РеализацияТоваровУслуг.ДогДоп,
    |    РеализацияТоваровУслуг.Контрагент.ДополнительнаяИнформация КАК Адрес
    |ИЗ
    |    Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
    |        ВНУТРЕННЕЕ СОЕДИНЕНИЕ ТаблицаДанныхДокументов КАК ДанныеДокументов
    |        ПО РеализацияТоваровУслуг.Ссылка = ДанныеДокументов.Ссылка
    |        ЛЕВОЕ СОЕДИНЕНИЕ ТаблицаОтветственныеЛица КАК ТаблицаОтветственныеЛица
    |        ПО РеализацияТоваровУслуг.Ссылка = ТаблицаОтветственныеЛица.Ссылка
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка
    |;
    |
    |////////////////////////////////////////////////////////////////////////////////
    |ВЫБРАТЬ
    |    ТаблицаТоваров.Ссылка КАК Ссылка,
    |    ТаблицаТоваров.Номенклатура КАК Номенклатура,
    |    ТаблицаТоваров.Номенклатура.НаименованиеПолное КАК НоменклатураНаименование,
    |    ВЫБОР
    |        КОГДА &КолонкаКодов = ""Артикул""
    |            ТОГДА ТаблицаТоваров.Номенклатура.Артикул
    |        ИНАЧЕ ТаблицаТоваров.Номенклатура.Код
    |    КОНЕЦ КАК НоменклатураКод,
    |    ВЫБОР
    |        КОГДА &ВыводитьБазовыеЕдиницыИзмерения
    |                ИЛИ ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |            ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения
    |        ИНАЧЕ ТаблицаТоваров.Упаковка.ЕдиницаИзмерения
    |    КОНЕЦ КАК ЕдиницаИзмерения,
    |    ВЫБОР
    |        КОГДА &ВыводитьБазовыеЕдиницыИзмерения
    |                ИЛИ ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |            ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Представление
    |        ИНАЧЕ ТаблицаТоваров.Упаковка.ЕдиницаИзмерения.Представление
    |    КОНЕЦ КАК ЕдиницаИзмеренияНаименование,
    |    ВЫБОР
    |        КОГДА &ВыводитьБазовыеЕдиницыИзмерения
    |                ИЛИ ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |            ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Код
    |        ИНАЧЕ ТаблицаТоваров.Упаковка.ЕдиницаИзмерения.Код
    |    КОНЕЦ КАК ЕдиницаИзмеренияКод,
    |    ТаблицаТоваров.Характеристика КАК Характеристика,
    |    ТаблицаТоваров.Характеристика.НаименованиеПолное КАК ХарактеристикаНаименование,
    |    ТаблицаТоваров.Упаковка КАК Упаковка,
    |    ВЫБОР
    |        КОГДА ЕСТЬNULL(ТаблицаТоваров.Упаковка.Коэффициент, 1) = 1
    |            ТОГДА """"
    |        ИНАЧЕ ТаблицаТоваров.Упаковка.Наименование
    |    КОНЕЦ КАК УпаковкаНаименование,
    |    ВЫБОР
    |        КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |            ТОГДА ТаблицаТоваров.Номенклатура.ЕдиницаИзмерения.Представление
    |        ИНАЧЕ ВЫБОР
    |                КОГДА &ВыводитьБазовыеЕдиницыИзмерения
    |                    ТОГДА ТаблицаТоваров.Упаковка.ЕдиницаИзмерения.Представление
    |                ИНАЧЕ КоэффициентыУпаковок.ВидУпаковки.ЕдиницаИзмерения.Представление
    |            КОНЕЦ
    |    КОНЕЦ КАК ВидУпаковки,
    |    ТаблицаТоваров.СтавкаНДС КАК СтавкаНДС,
    |    ТаблицаТоваров.НомерГТД КАК НомерГТД,
    |    ТаблицаТоваров.НомерГТД.СтранаПроисхождения КАК СтранаПроисхождения,
    |    ВЫБОР
    |        КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
    |            ТОГДА ТаблицаТоваров.КоличествоУпаковок
    |        ИНАЧЕ ТаблицаТоваров.Количество
    |    КОНЕЦ КАК Количество,
    |    ВЫБОР
    |        КОГДА &ВыводитьБазовыеЕдиницыИзмерения
    |            ТОГДА ТаблицаТоваров.КоличествоУпаковок
    |        ИНАЧЕ КоэффициентыУпаковок.Количество / КоэффициентыУпаковок.КоэффициентВложеннойУпаковки
    |    КОНЕЦ КАК КоличествоМест,
    |    ВЫБОР
    |        КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
    |            ТОГДА ВЫБОР
    |                    КОГДА КоэффициентыУпаковок.Количество < КоэффициентыУпаковок.КоэффициентВложеннойУпаковки
    |                        ТОГДА КоэффициентыУпаковок.Количество
    |                    ИНАЧЕ КоэффициентыУпаковок.КоэффициентВложеннойУпаковки
    |                КОНЕЦ
    |        ИНАЧЕ ВЫБОР
    |                КОГДА ТаблицаТоваров.Упаковка = ЗНАЧЕНИЕ(Справочник.УпаковкиНоменклатуры.ПустаяСсылка)
    |                    ТОГДА 1
    |                ИНАЧЕ ТаблицаТоваров.Упаковка.Коэффициент
    |            КОНЕЦ
    |    КОНЕЦ КАК КоличествоВОдномМесте,
    |    ВЫБОР
    |        КОГДА НЕ &ВыводитьБазовыеЕдиницыИзмерения
    |            ТОГДА ТаблицаТоваров.СуммаБезНДС / ТаблицаТоваров.КоличествоУпаковок
    |        ИНАЧЕ ТаблицаТоваров.СуммаБезНДС / ТаблицаТоваров.Количество
    |    КОНЕЦ КАК Цена,
    |    ТаблицаТоваров.СуммаБезНДС КАК СуммаБезНДС,
    |    ТаблицаТоваров.СуммаНДС КАК СуммаНДС,
    |    ТаблицаТоваров.СуммаБезНДС + ТаблицаТоваров.СуммаНДС КАК СуммаСНДС,
    |    ТаблицаТоваров.Количество * ТаблицаТоваров.Номенклатура.Вес КАК МассаНетто,
    |    ВЫБОР
    |        КОГДА &ЗаполненаЕдиницаИзмеренияВеса
    |            ТОГДА ВЫБОР
    |                    КОГДА ТаблицаТоваров.Упаковка.Вес ЕСТЬ NULL
    |                        ТОГДА ТаблицаТоваров.Количество * ТаблицаТоваров.Номенклатура.Вес
    |                    ИНАЧЕ ТаблицаТоваров.КоличествоУпаковок * ТаблицаТоваров.Упаковка.Вес
    |                КОНЕЦ
    |        ИНАЧЕ 0
    |    КОНЕЦ КАК МассаБрутто,
    |    ТаблицаТоваров.НомерСтроки КАК НомерСтроки,
    |    ВЫБОР
    |        КОГДА ТаблицаТоваров.Ссылка.ВернутьМногооборотнуюТару
    |                И ТаблицаТоваров.Номенклатура.ТипНоменклатуры = ЗНАЧЕНИЕ(Перечисление.ТипыНоменклатуры.МногооборотнаяТара)
    |            ТОГДА ИСТИНА
    |        ИНАЧЕ ЛОЖЬ
    |    КОНЕЦ КАК ЭтоВозвратнаяТара
    |ИЗ
    |    ТаблицаТоваров КАК ТаблицаТоваров
    |        ЛЕВОЕ СОЕДИНЕНИЕ КоэффициентыУпаковок КАК КоэффициентыУпаковок
    |        ПО ТаблицаТоваров.Ссылка = КоэффициентыУпаковок.Ссылка
    |            И ТаблицаТоваров.НомерСтроки = КоэффициентыУпаковок.НомерСтроки
    |            И (НЕ &ВыводитьБазовыеЕдиницыИзмерения)
    |ГДЕ
    |    (ТаблицаТоваров.ЭтоТовар
    |            ИЛИ &ВыводитьУслуги)
    |
    |УПОРЯДОЧИТЬ ПО
    |    Ссылка,
    |    НомерСтроки
    |ИТОГИ ПО
    |    Ссылка";
    Запрос.УстановитьПараметр("ВыводитьУслуги",                  ПараметрыПечати.ВыводитьУслуги);
    Запрос.УстановитьПараметр("КолонкаКодов",                    КолонкаКодов);
    Запрос.УстановитьПараметр("ЕдиницаИзмеренияВеса",            Константы.ЕдиницаИзмеренияВеса.Получить());
    Запрос.УстановитьПараметр("ЗаполненаЕдиницаИзмеренияВеса",   ЗначениеЗаполнено(Константы.ЕдиницаИзмеренияВеса.Получить()));
    Запрос.УстановитьПараметр("ВыводитьБазовыеЕдиницыИзмерения", Константы.ВыводитьБазовыеЕдиницыИзмерения.Получить() ИЛИ ВыводитьГТД);
2 Ненавижу 1С
 
гуру
10.12.13
10:03
ага, смотрим

Документ.РеализацияТоваровУслуг.МодульМенеджера(4486)

там наверное тот самый запрос, и там наверняка есть деление, а делят наверняка на 0, надо что-бы в твоих данных нуля этого не стало
3 anisa8310
 
10.12.13
10:04
(2) да но не понимаю где-коэффициент-ни одного такого реквизита не вижу....ужас какой то -...откуда она берется
4 mikecool
 
10.12.13
10:05
(3) пригласи специалиста )))
5 Ненавижу 1С
 
гуру
10.12.13
10:06
либо
ТаблицаТоваров.Количество
либо
ТаблицаТоваров.КоличествоУпаковок
либо
КоэффициентыУпаковок.КоэффициентВложеннойУпаковки
6 Ненавижу 1С
 
гуру
10.12.13
10:07
|    ТаблицаТоваров КАК ТаблицаТоваров
    |        ЛЕВОЕ СОЕДИНЕНИЕ КоэффициентыУпаковок КАК КоэффициентыУпаковок

это что за таблицы?
7 anisa8310
 
10.12.13
10:08
8 anisa8310
 
10.12.13
10:08
(6) это походу таблицы менеджеров
9 anisa8310
 
10.12.13
10:09
и ещё количество почему то не ставится не "1" не принимает и мЧисло(Массив[2]) тоже не принимает
10 mikecool
 
10.12.13
10:10
возьми за правило в запросах с дробями пользовать
выбор когда естьнул(знаменатель, 0) = 0 тогда 0
иначе дробь конец
11 Ненавижу 1С
 
гуру
10.12.13
10:12
(8) надо смотреть где создаются эти временные таблицы

>>и ещё количество почему то не ставится

а ставится 0? ну вот и решение собственно

(10) затыкание дыр?

фиг знает, что там в массиве
12 mikecool
 
10.12.13
10:18
(11) пнтненько, что проверки дб в другом месте, но коль уж дошло до запросов я предпочту, чтобы он выполнился без ошибок
либо он должен выполниться и потом уже, по результатам сформировать читабельные сообщения об ошибках ,если они есть
а не выдавать скулевые сообщения юзверу
13 hhhh
 
10.12.13
10:31
(11) баян, даже школьник знает, что в УТ11 КоличествоУпаковок, а не Количество.
14 ИС-2
 
naïve
10.12.13
10:40
если тупо, то надо параметр ВыводитьБазовыеЕдиницыИзмерения установить в истину. Но логически это правильно или нет, знает только (0)
15 anisa8310
 
10.12.13
10:44
(14) это как написать?
16 anisa8310
 
10.12.13
10:44
этот параметр
17 anisa8310
 
10.12.13
13:17
18 anisa8310
 
10.12.13
13:18
но справочник пуст
19 anisa8310
 
11.12.13
09:15
Получилось