Обмен опытом →  Расширение с загрузкой с сайта налоговой

0
axoltol ambistoma
24.12.2018 16:10

друзья , подскажите пожалуйста , есть ли метод как побороть такую беду

чеки из фнс загружаются , но при нажатии кнопки "перенести в документ" получаю ошибку

{АП_ЗагрузкаЧеков Обработка.ЗагрузкаЧеков.Форма.Форма.Форма(629)}: Значение не является значением объектного типа (НайтиСтроки)
    МасСтр = НаборАналитики.НайтиСтроки (Новый Структура ("ИспользоватьДляРасхода", Истина));

 

 

0
Костюков Руслан
24.12.2018 16:16

Какую версию конфигурации используете?

0
axoltol ambistoma
24.12.2018 16:25

1С:Предприятие 8.3 (8.3.12.1616)

Деньги 8, редакция 2.0 (2.0.33.14) (http://v8.1c.ru/money)
Copyright © ООО "1С-Софт", 2009-2018. Все права защищены
(http://www.1c.ru)

режим Серверный

0
axoltol ambistoma
24.12.2018 17:34

смог пока что сделать так, закомментил некоторые строки аналитики.

в итоге при нажатии "перенести в документ" получаю сообщение "Неопределено", но по чеку таки создается расходная операция.

сейчас нет времени разбираться  - потом попробую нормально сделать, если меня никто не опередит))

0
lybsik_bl
25.12.2018 0:08

сегодня общалась с инспектором ФНС (по работе) - они уже "в шоке" и у них "полная жесть", потому что "ФНС по всей России переходит на новую программу"

Это даже "хуже чем вы 1С с 8.2 на 8.3 переводите"

так что: Хорошего вам настроения! И всего доброго!!!)

0
axoltol ambistoma
25.12.2018 9:37

лучше не пользуйтесь моей редакцией обработки - она как выяснилось рождает проблемы как минимум если вы использовали до этого аналитику. Перестают открываться прошлые операции.

+1
ЦБУ Первый БИТ (Москва, Москва)
26.12.2018 20:13

А чего вы хотели добиться комментированием данного куска кода?

&НаСервере
Функция ПеренестиВДокументНаСервере(ДокСсылка)
    
    ТаблицаЗначений = РеквизитФормыВЗначение("СоставЧека");
    
    Если ЗначениеЗаполнено(ДокСсылка) Тогда
        ДокументОбъект = ДокСсылка.ПолучитьОбъект();            
    Иначе
        ДокументОбъект = Документы.Расход.СоздатьДокумент();
        ДокументОбъект.Заполнить(Неопределено);
        ДокументОбъект.Дата = ЭтотОбъект.Дата;
        ДокументОбъект.СуммаЧека = ЭтотОбъект.СуммаДокумента;
        Если ЗначениеЗаполнено (ЭтаФорма.Кошелек) Тогда
            ДокументОбъект.КошелекДолг = ЭтаФорма.Кошелек;
        КонецЕсли;
    КонецЕсли;
        //Сформируем таблицу аналитики
    //лТЗАналитики = АналитикаСтатей.НоваяТаблицаВидИЗначениеАналитики();
    //лТЗАналитики.Колонки.Добавить("РедактироватьВШапке", Новый ОписаниеТипов("Булево"));    //Добавим поле для определения, что можно менять
        //Получим набор аналитики по Объекту
    //НаборАналитики = ПолучитьАктуальныйНаборАналитики (ДокументОбъект);
        //Выберем только аналитики используемые в Расходе
    //МасСтр = НаборАналитики.НайтиСтроки (Новый Структура ("ИспользоватьДляРасхода", Истина));
        //Заполним таблицу аналитики, так получим значения по-умолчанию, которые заполняются в шапке.
    //Для Каждого СтрНабораАналитики Из МасСтр Цикл
    //    Если лТЗАналитики.Найти (СтрНабораАналитики.ВидАналитики, "ВидАналитики") = Неопределено Тогда    //Хотя вроде бы лишнее условие
    //        СтрАналитики = лТЗАналитики.Добавить ();
    //        ЗаполнитьЗначенияСвойств (СтрАналитики, СтрНабораАналитики);
    //        СтрАналитики.ЗначениеАналитики = СтрНабораАналитики.ЗначениеАналитикиРасходаПоУмолчанию;
    //        Если СтрАналитики.РедактироватьВШапке И Не ЗначениеЗаполнено (СтрАналитики.ЗначениеАналитики) Тогда    //Стоит флаг редактирования в шапке, а значения по-умолчанию нет.
    //            СтрАналитики.РедактироватьВШапке = Ложь;    //Сбросим флаг. Хотя может лучше оставить? Тут вопрос в том, заполять ли данную аналитику из СтатьиРасхода
    //        КонецЕсли;
    //    КонецЕсли;
    //КонецЦикла;
        //Заполнение аналитики Магазина
    Если ЗначениеЗаполнено(Магазин) Тогда
                //Прямой поиск...
        //АналитикаМагазин = лТЗАналитики.Найти (ПланыВидовХарактеристик.ВидыАналитик.МестоТраты, "ВидАналитики");
        //Если АналитикаМагазин = Неопределено Тогда    //Получается, что аналитика не используется, но мы добавим
            //АналитикаМагазин = лТЗАналитики.Добавить ();
            //АналитикаМагазин.ВидАналитики = ПланыВидовХарактеристик.ВидыАналитик.МестоТраты;
        КонецЕсли;
        //АналитикаМагазин.ЗначениеАналитики = ЭтотОбъект.Магазин;    
        //АналитикаМагазин.РедактироватьВШапке = Истина;    //На всякий случай поставим, что редактируется в шапке.
    //КонецЕсли;
    
    ДокументОбъект.Расходы.Очистить();
    
    ТаблицаЗначений.Свернуть("СтатьяРасходов,Наименование","Количество,Скидка,Стоимость");
    
    Для Каждого Строка Из ТаблицаЗначений Цикл
        НоваяСтрока = ДокументОбъект.Расходы.Добавить();
        НоваяСтрока.СтатьяРасходаИмущество = Строка.СтатьяРасходов;
        Если Строка.СтатьяРасходов.КоличественныйУчет Тогда
            НоваяСтрока.Количество = Строка.Количество;
        КонецЕсли;
        НоваяСтрока.Скидка = Строка.Скидка;
        НоваяСтрока.СкидкаВведенаВручную = Строка.Скидка > 0;
        НоваяСтрока.Сумма = Строка.Стоимость;
        НоваяСтрока.КомментарийСтроки = СокрЛП(Строка.Наименование);
        РасширеннаяАналитика = АналитикаСтатей.ПолучитьРасширеннуюАналитикуДляСтатьи(Строка.СтатьяРасходов);
        Для Каждого СтрРасшАналитики Из РасширеннаяАналитика Цикл
            Если Не СтрРасшАналитики.Использовать Тогда Продолжить; КонецЕсли;    //Есть такое поле будем проверять.
            //СтрАналитики = лТЗАналитики.Найти (СтрРасшАналитики.ВидАналитики, "ВидАналитики");
            //Если СтрАналитики = Неопределено Тогда    //Вопрос - добавлять или нет. Пока не буду.
                Продолжить;
            //ИначеЕсли СтрАналитики.РедактироватьВШапке Тогда    //Редактируемые в шапке тоже пропускаем.
                //Продолжить;
            //КонецЕсли;
                //Ну а здесь заполним аналитику
            //СтрАналитики.ЗначениеАналитики = СтрРасшАналитики.ЗначениеПоУмолчанию;
        КонецЦикла;
            //Преобразуем таблицу в ссылку
        //НоваяСтрока.АналитикаСтатьи = АналитикаСтатей.ПолучитьСсылкуНаНаборЗначенийАналитик (лТЗАналитики);
    КонецЦикла;
        //Сохраним аналитику в документ
    ДокументОбъект.АналитикаДокумента.Очистить();
    //Для Каждого СтрАналитика Из лТЗАналитики Цикл
        СтрАналитикиДок = ДокументОбъект.АналитикаДокумента.Добавить();
        //ЗаполнитьЗначенияСвойств (СтрАналитикиДок, СтрАналитика);
        Если СтрАналитикиДок.РедактироватьВШапке Тогда
            //СтрАналитикиДок.ЗначениеАналитикиВШапке = СтрАналитика.ЗначениеАналитики;
        КонецЕсли;
    //КонецЦикла;
    
    //Ў+
    Для Каждого Строка ИЗ ДокументОбъект.Расходы Цикл
        Если НЕ ЗначениеЗаполнено(Строка.СтатьяРасходаИмущество) Тогда
            Строка.СтатьяРасходаИмущество = Справочники.СтатьиРасходов.ПрочиеРасходы;
        КонецЕсли;
    КонецЦикла;
    //Ў-
    ДокументОбъект.Комментарий = СформироватьКомментарийСПараметрамиЧека(ДокументОбъект);
    ДокументОбъект.Записать(РежимЗаписиДокумента.Проведение);//Ў+-
    
    // Заполнения поля документа, чтобы не создавалось 2-й раз
    Попытка
        ЭтаФорма.Расход = ДокументОбъект.Ссылка;
        СтрокаТаблицы = СписокЧеков.НайтиПоИдентификатору(Элементы.СписокЧеков.ТекущаяСтрока);
        СтрокаТаблицы.ДокументРасхода = ДокументОбъект.Ссылка;
        СтрокаТаблицы.ДокументРасходаПроведен = ДокументОбъект.Ссылка.Проведен;
    Исключение
    КонецПопытки;
    
    //Возврат ДокументОбъект.Ссылка;

КонецФункции

Было бы достаточно зайти в константу "Использовать аналитику статей" и снять там галочку, эффект был бы тот же :-)

0
ЦБУ Первый БИТ (Москва, Москва)
26.12.2018 20:15

Пришлите мне идентификационные данные этого чека, я проверю, что происходит в ответе ФНС и что 1С`ка с этим делает.

Почитав код, о котором идёт речь (в котором ошибка) логически вырисовывается, что у вас проблема со списком аналитики, которую вы используете в расходных операциях. Зайдите в Сервис - Изменить аналитику в операциях и проверьте используемую аналитику, что-то у вас не так...

 

0
Костюков Руслан
27.12.2018 11:10

 

А чего вы хотели добиться комментированием данного куска кода?

Было бы достаточно зайти в константу "Использовать аналитику статей" и снять там галочку, эффект был бы тот же :-)

 

Хорошо, когда профессионал дает краткий и точный ответ (совет)! :-)

0
Павел Александрович (HomeProduct, Томск)
28.12.2018 18:09

Пожалуйста, поделитесь в формате "epf"