Всем привет. Не секрет, в Беларуси с 1 июля 2016 должна подаваться ЭСЧФ. Кто-нибудь уже работает с ней? Ведь там, вроде, уже 60 компаний Беларуси работает в тестовом режиме.
Сделал я по инструкциям, что на их сайте, но столько вопросов к их информации осталось.
Очень много полезного нам дали разработчики. Внимательно читайте их документацию в eInvVat, которую скачиваете, а так же примерами для 1С служат bat файлы из папки eInvVat\simpleapp\vbs\src\. Не поленитесь и посетить их сайт vat.gov.by. На основании этих знаний все пишут обработки. Если что не понятно, то можно прибегнуть к данной теме.
Важные и полезные ссылки на сайты и на сообщения темы.
Ссылки на сайт портала
Новости от разработчиков - здесь Руководства и инструкции по настройки ПК, Windows, IE - здесь Описание XML-схем и веб-сервисов - здесь Видео вебинара по ЭСЧФ, который проходил в июле - здесь
Обработки с данной темы
Обработка от BONIA Я (Bonia) - (229) и пример кода (231) и (1098) Обработка по проверке файла по схемам. Автора я не смог найти (отзовись, в историю впишем). Переделана Slypower - (308) Обработка по входящим от Slypower. До введения однократного скачивания в сутки - (2537) Обработка по входящим для 1с 7.7 и для 1с8. Рабочая от slypower - (5412). С доработками от Евгений Веренич (EvgPinsk) - (7206) Делает XML из выбранного документа от Asd Zxc (ASDCXZ) - (2823) Отправка ЭСЧФ от slypower. Очень сырая и для ТиС. Требует переделки од себя индивидуальна. Годна для черпания идей - (2950) Печать ЭСЧФ от Сергей Кириллов (Sergey_Kirillov) - (4358) Проверка УНП с сайта налоговой http://www.portal.nalog.gov.by/grp/ - от Aleksey Krasowskiy (Krasowskiy)(5026) и от Сергей Кириллов (Sergey_Kirillov)(5031) Получерие входящей ЭСЧФ по номеру от Aleksey Krasowskiy (Krasowskiy) - (5169) Обновление СОС от slypower - (5291) Будьте внимательны. В старых сообщениях в обработках стоят неправильные адреса для подключения. В первую очередь проверьте их!!!
Полезные сообщения темы
Реклама своей работы от Gladkov_Anton - (445) Реклама своей работы от Александр Самуйлов (A.E.) - (1273) Реклама своей работы от Yauhen Makei (mrDSide) - (5591), (5592) Автоматический подключение к ключу-(354) Декодирование файлов .sgn и .ticket - (448) Отправки ЭСЧФ с помощью сервиса из терминальной сесии для простого пользователя не обладающего правами Администратора. Испробовано на Сервере 2003/32 - (784) Программа, которая ключ на сервер пробрасывает - (842) , (5408),(6568) Инструкция по настройке серверных компов от Ира С (iraSys) - (844) Дополнительная настройка для серверных операционных систем - (5208) Сервис для проверки валидности xml - (871) Классификатор ТНВЭД в экселе - (790) и (885) Автоматический импорт СОС на локальную машину - (2853), (2854) и (2856), (3882) Полезная информациея тем, кто использует в работе терминальные сервера - (3044) Артур Коржан (1v7) собрал "полезные вкусняшки в куче" - (3688) Корректировка кодов справочника стран от Артур Коржан (1v7) - (5844) Образцы заполнения ЭСЧФ - (3700) На портале развернута база данных cassandra. Описание - (3908), (5459) Возможные ситуации, которые могут возникнуть с работой порталом и их решение - (4524) SlimBrowser вместо IE для работы на Вин XP - (4684) Универсальная загрузка из CSV от vvv vvv (keyn5565`): (6951). Код к ней (если кто не может скачать): (7076)
Коды процедур для 1С
Процедура работы с входящими на 1С 8.3 - (4275) Парсер csv с портала для 1С 8 - от Сергей Кириллов (Sergey_Kirillov) (4352) от Xer shi (Xershi) (4363) Скачка входящих и создание дока в 1С7.7 - (4448) Обновление статусов 1С7.7 - (4573) Читать хмл 1с7.7 от Хьюмена -(4808) Скачка входящих для 1с8 от vvv vvv (keyn5565`) - (5126) Проверка версии компоненты для 1С8 от Xer shi (Xershi) - (5186) Скачкивать входящие подписанные эсчф с портала - (5345) Создание задачи для автоматического обновления СОС, 1с8 от vvv vvv (keyn5565`) - (5350) Обновление СОС из 1С7.7 от Igor Pleskun (Igor Igorevich) - (5361) Обновление СОС из 1С8 от vvv vvv (keyn5565`) - (5423) Проверка справочника контрагентов для проверки ликвидирования контрагента для 1с8 от vvv vvv (keyn5565`) - (5419), от Xer shi (Xershi)(5437) Проверки по правилам заполненения для 1С8 от Xer shi (Xershi) - (5508), (5509) Проверка подписей эсчф на портале - от Xer shi (Xershi)(5530), от Yauhen Makei (mrDSide)(5599) Заполнение справочника ОКЭД от vvv vvv (keyn5565`) - (5565)
Вопрос-Ответ
Многие ошибки, да почти все, связаны с не стабильной работой портала, особенно во времена всеобщей выгрузки ЭСЧФ на портал. Но некоторые тут вынесем.
Какие сроки выставления ЭСЧФ?
Ответ: Министерство по налогам и сборам информирует, что в соответствии с пунктом 5 статьи 1061 Налогового кодекса Республики Беларусь с 1 января 2017 года выставление (направление) электронного счета-фактуры осуществляется по общему сроку не позднее 10-го числа месяца, следующего за месяцем дня отгрузки товаров (выполнения работ, оказания услуг), передачи имущественных прав, если иное не установлено пунктом 5 статьи указанной статьи.
В отношении товаров (работ, услуг), имущественных прав, отгруженных (выполненных, оказанных), переданных в декабре 2016 г., выставление электронного счета-фактуры также может производиться по сроку не позднее 10.01.2017.
Подскажите, плиззз, на машинах Win2008R2 при входе на портал
Включите SSL 3.0, TLS 1.0, TLS 1.1 и TLS 1.2
С Семерки все в норме, хотя делалось все по мануалам идентично одними и теми же ровными руками
Ответ: (639)
Сообщение об ошибке, которое выплевывает 1Ска при попытке законнектиться к порталу (команда "EVatService.Connect..."):
"THE CLIENT AND SERVER CANNOT COMMUNICATE BECAUSE THEY DO NOT POSSESS THE COMMON ALGORITHM"
или по-русски "КЛИЕНТ И СЕРВЕР НЕ МОГУТ ОБЩАТЬСЯ, ПОТОМУ ЧТО ОНИ НЕ ОБЛАДАЮТ ОБЩИМ АЛГОРИТМОМ."
Ответ: (2310)
Ошибка при проверке XML: Класс не зарегистрирован, ClassID: {88D96A07-F192-11D4-A65F-0040963251E5}
Ошибка возникает только на сервере 2003 сп2 32битм Java 7 79 updt
Ответ: (2365)
Отличие Исправленной от дополненной.
Ответ: (5020)
Отправили ЭСЧФ на портал, но ее там нет.
Ответ: Чтобы узнать почему, воспользуйтесь одним из способов:
1) загрузите файл xml этой ЭСЧФ на портала вручную
2) сделайте возврат статуса сразу после отправки на портал. Он вам и вернет ответ на вопрос, почему нет.
Портал вернул статус "IN_PROGRESS" или "В разработке" или "ЭСЧФ с номером 11111111-2017-0000000001 находится в обработке. Запросите статус повторно.".
Ответ: (5237). Данный статус может быть на портале до 3-х часов, но чаще всего лишь минут 30, затем становиться "Выставлен".С 1 января 2017 г наблюдается задержка до суток.
Можно ли анулировать из 1С?
Ответ: Нельзя, только на портале. Можно выставить исправленный, который анулирует исходный, но просто анулировать нельзя.
При подключении к тестовому порталу:
Ошибка авторизации на портале электронных счетов-фактур НДС Сертификат издателя не найден. [Для проверки <vat.gov.by> не найден сертификат <Удостоверяющий центр для разработчиков> (KeyID=6E28B036743B6B021B4D353E1AC51C5A204271FA)
Ответ: (5868)
Что значит UTC в строке: Ответ сервера: В последний раз ЭСЧФ под номером УНП-ГОД-НОМЕРЭСЧФ вы получали 2016-09-06 11:35:18 (UTC), в следующий раз ее можно будет получить после 2016-09-07 11:35:18 (UTC) и почему это время не совпадает с нашим?.
Ответ: UTC — это всемирное координированное время, стандарт времени, принятый на Земле. От UTC отсчитываются часовые пояса. UTC заменил устаревшее время по Гринвичу (GMT). Подробнее тут.
при попытке загрузить ЭСЧФ из xml файла пишет.
Версия анализатора = 2.0
Версия базового анализатора = 4.0
Для загрузки файлов необходима версия XML Parser 3.0
где копать?
Ответ: В ХР зарегистрирован Microsoft XML Parser 4.0, но есть там и 3.0.
Действия :
Отменяем регистрацию версии XML 4.0 :
Пуск - выполнить - копируем или набираем regsvr32 /u msxml4.dll - Ок
Затем регистрируем версию 3.0:
Пуск - выполнить - копируем regsvr32 msxml3.dll -ОК
После этого надо перезапустить 1С программу, если она была открыта.
Если ничего не помогает, качаем ниже и устанавливаем пакет MSXML3
Также ошибка MSXML может возникать и в более поздних версиях Windows 7 и 8. Для 64-битной версии устанавливаем версию соответствующую разрядности ОС x64 - msxml4-kb2721691-enu.
По итогу все равно ничего не работало, пока не закинула эти файлы msvcp71.dll, msvcr71.dll, parser3isapi.dll в папку с 1с.
Еще одно решение:
Через установку и удаление программ я удалил Parser 4 и 6-й. Зашел в 1с - все работает и загружает.
(5468) При отгрузке товара по ТТН-1 обязательное заполнение грузоотправитель и грузополучатель. Если по ТН-2, то не обязательно. Это регулируется кодом дока: 603 и 602 соответственно. Так что отгружайте по ТН-2 и все)
(5474)
Вы немного не поняли)
Те что что мы выставляем адресно и так всё нормально проходит и там всё указывается как в действительности. А вот те, что без НДС, которые выставляем "в никуда", ругаются, если указывать ТТН-1 и не указывать получателя.
ПС
Посовещались с главбухом, решили пока обманывать портал, указывая не тот тип бланка. Всё равно эти ЭСЧФ никому не попадают, и никто ругаться не будет. В теории)
(5476) без УНП - это физ лицам? Никто физ. лицам никогда не отгружает по ТТН, только по ТН, т.к. ТТН подразумевает забирать товар на авто, т.е. должны быть данные о водителе даже. Может ваши бухи не правильно ведут 1С?
(5478)
Нет, юрлицам. Звонили покупатели и жаловались, что мы им выставляем ЭСЧФ без НДС, хотя имеем право не указывать получателя. И, собственно, просили не указывать, чтобы уменьшить объем входящих ЭСЧФ.
Да и у нас не одно юрлицо, а группа компаний, с большим ТО внутри. И наши "внутренние" бухи от разных юрлиц тоже ноют, что очень много входящих ЭСЧФ, а "безНДСные" составляют добрую половину от общего количества. К тому же они очень криво распределяются по первичным документам.
В консультанте есть разъяснения минфина по этому поводу, согласно которому "...Поскольку осуществляется реализация другим организациям, ...., товаров освобожденных от налога на добавленную стоимость в соответствии со ст. 94 НК, то белорусским организациям следуют создавать электронный счет-фактуру и направлять его на Портал без необходимости его выставления покупателю продукции."
Вот и получается, что если не заполнять разделы Покупатель и Грузополучатель, и при этом в документах указанно что-то отличное от ТТН-1 (ТН-2, Электронная ТТН-1, Электронная ТН-2), то портал пропускает без вопросов.
Но у нас основная отгрузка идет пока через ТТН-1 (хотя перебираемся на ЭДО потиху). И тут встает выбор, либо всё равно выставлять ЭСЧФ без НДС адресно, либо указывать левый тип документа (например, менять ТТН-1 на ТН-2). Главный главбух решил менять тип документа, всё равно выставляется "в никуда".
(5482) А система не пропускает, если не указать УНП покупателя в 3 разделе, но указать грузополуателя в 4ом?
Вообще этот замут с указанием ТТН или ТН подразумевает, что система автоматически сможет проверить, покупала ли наша организация такие БСО и дадут лишний повод для проверки при указании недостоверных сведений.
(5459) В обозримом будущем работать с порталом можно будет и в Linux:
Разработчики обещают пользователям со временем возможность взаимодействовать с Порталом, работая не только с Windows, но и, например, с Linux. На вопрос: «Когда?», отвечают: «В обозримом будущем». И приводят аргументы такому решению: использование в работе бесплатных операционных систем является общемировым трендом, который beCloud не намерен игнорировать. Со своей стороны можно добавить: такая возможность была бы интересной, вероятно, малому бизнесу, индивидуальным предпринимателям, у которых нет возможности приобретать дорогостоящее программное обеспечение. Да и подключение к системе электронных счетов-фактур должно быть, в конце концов, максимально простым и удобным.
Честно не понял а где в выложенных Вами материалах упоминание о Кассандре.
Возмутило !
Александр ТКАЧЕВ: - Я вижу, что главное направление – автоматизация учета, автоматизация работы с порталом. И только в результате автоматизации можно прийти к решению всех трудных вопросов, которые возникают у бухгалтеров. Другого пути, наверное, нет, и налогоплательщики будут вынуждены пойти на автоматизацию учетного процесса и работы с порталом.
О какой автоматизации они бредят если из пяти функций портала три приходится выполнять вручную ибо автоматически ЗАПРЕЩЕНО! Сверка данных фактически отсутствует несмотря на попытки ее сделать!
Честно не понял а где в выложенных Вами материалах упоминание о Кассандре.
Прочитайте пост (3900), я просто думал что в МНС работают продвинутые разработчики, но потом понял, что это не их заслуга.
И все проблемы мне кажется не в разработке, а что криво было написано тех.задание. Т.е. кто писал, еще сам не представлял как должен работать портал.
Понял это из общения с разработчиками EPAM, которые пишут системы аналогичного уровня, только не для Беларуси.
По поводу языка написания, наиболее вероятные предположения, что это C#.
Коллеги, кто-нибудь в курсе грозит ли чем-то в данный момент выставление "лишних" ЭСЧФ ? Еще не вникал какие масштабы, но много документов на портал повторно ушло. Вручную сидеть и аннулировать - это как минимум пи***ц (
(5469) если порожняк закинули, придется их вручную все равно аннулировать. Функционал только на портале.
У нас такое пока возможно если в реализации изменили контрагента. Остальные случае уже закрыл!
(5473) Не могу найти где, но по симптомам в каких-то случаях транзакция в 1С не записывается, а данные при этом на портал уходят ... вроде везде проверки стоят (
(5475) По видимому проблема не с повторной отправкой, а с повторным созданием ЭСЧФ к одному и тому же основанию.
Если одну и ту же ЭСЧФ выгрузить на портал 5 раз, то портал примет только один раз. Такое у меня было: выгружал-выгружал, а портал не принимает и не принимает, проверил - ЭСЧФ с данным номером уже выгрузилась на портал, а в 1с отметка о выгрузке не поставилась.
(5480) все зависит от того, у кого как настроена ЭСЧФ. У меня, если не стоит в доке эсчф, то на этот док я могу выставить хоть млн эсчф, все пойдет. Номер ЭСЧФ у меня плавающий
(5469) Нам Водоканал частенько выставляет повторные ЭСЧФ, одну подписываем, а остальные нет, бухгалтерия просит остальные аннулировать, но они с июля так и висят неаннулированные. Есть предположение, что тоже много выставили повторных и нет возможности аннулировать вручную.
Думаю, что если от многих пользователей поступит заявка на возможность аннулирования ЭСЧФ через сервис, то должны доработать портал и компоненту.
Закончил разбираться с правилами заполнения.
Решил заодно взяться за обязательные поля.
У нас часто возникала проблема:
Обязательность заполнения-17 Наименование товаров (работ, услуг), имущественных прав (roster)<name>
Тут вопросов нет, напишу проверку.
1. Блок:
Обязательность заполнения-5 6.1. Взаимозависимое лицо
Обязательность заполнения-6 6.2. Резидент оффшорной зоны
Обязательность заполнения-7 6.3. Сделка с товарами по перечню, определяемому Правительством Республики Беларусь, в соответствии с подпунктом. 1.3 пункта 1 статьи 301 НК;
Обязательность заполнения-8 6.4.Организация, включенная в перечень крупных плательщиков
Обязательность заполнения-13 15.1. Взаимозависимое лицо
Обязательность заполнения-14 15.2. Резидент оффшорной зоны
Обязательность заполнения-15 15.3. Сделка с товарами по перечню, определяемому Правительством Республики Беларусь, в соответствии с подпунктом. 1.3 пункта 1 статьи 301 налогового кодекса;
Обязательность заполнения-16 15.4.Организация, включенная в перечень крупных плательщиков
Они принимают значение булево и поэтому всегда заполнены текстом, но ложь это не заполненное значение. Или тут речь, чтобы в хмл был текст у полей?
2. Блок:
Обязательность заполнения-9 8 или 17. УНП поставщика / получателя (sender)
Обязательность заполнения-10 9 или 18. Наименование поставщика / получателя (sender)
Обязательность заполнения-11 10 или 19. Юридический адрес поставщика / получателя (sender)
В ряде случаем эти реквизиты пустые и я даже не заполняю их в хмл, в чем тогда обязательность?
3. Блок:
Обязательность заполнения-18 Стоимость товаров (roster)
Обязательность заполнения-19 НДС ставка (roster)
Обязательность заполнения-20 НДС ставка (roster)
Обязательность заполнения-21 НДС сумма (roster)
Обязательность заполнения-22 Стоимость товаров с учетом НДС (roster)
Обязательность заполнения-23 Всего по счету. Стоимость товаров (работ, услуг), имущественных прав без НДС
Обязательность заполнения-24 Всего по счету. Сумма акциза
Обязательность заполнения-25 Всего по счету. Сумма НДС
Обязательность заполнения-26 Всего по счету. Стоимость товаров (работ, услуг), имущественных прав с учетом НДС
Многие реквизиты = 0, в хмл они есть, но ноль это тоже не заполненное значение. Т.е. обязательность это просто наличие в хмл такого реквизита с 0?
Правило-37 Если заполнен один из реквизитов документа: тип, или номер, или дата, то остальные (тип, номер и дата) – обязательны для заполнения
Под типом что имеется в виду?
Код условия поставки? 601, 602 и тд?
Ответ:
Если заполнен один из реквизитов документа: ВИД документа, или номер, или дата, то остальные (вид документа, номер и дата) – обязательны для заполнения.
Вид документа указывается из справочника. Справочник Видов документов можно посмотреть в разделе Справочники-Системные справочники- Виды документов. Например, код вида документа 602- ТН-2.
Выходит у них ошибка в мануале. А то сегодня пришлось править это правило из-за не стыковки актов.
Вот вышла процедура проверки обязательных полей, для меня самое главное было номенклатура пустая:
Процедура ПроверкаОбязательныхПолей(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Обязательное - 1
Если Не ЗначениеЗаполнено(СтруктураДанных.НомерЭСЧФ) Тогда
ТекстОшибки = "Поле ""Номер ЭСЧФ <number>"" должно быть заполнено!";
Отказ = Истина;
//Обязательное - 2
ИначеЕсли Не ЗначениеЗаполнено(СтруктураДанных.ТипЭСЧФ) Тогда
ТекстОшибки = "Поле ""Тип ЭСЧФ <documentType>"" должно быть заполнено!";
Отказ = Истина;
//Обязательное - 3
ИначеЕсли Не ЗначениеЗаполнено(СтруктураДанных.ДатаСовершенияОперации) Тогда
ТекстОшибки = "Поле ""Дата совершения операции <dateTransaction>"" должно быть заполнено!";
Отказ = Истина;
//Обязательное - 4
ИначеЕсли Не ЗначениеЗаполнено(СтруктураДанных.СтатусПоставщика) Тогда
ТекстОшибки = "Поле ""Статус поставщика <providerStatus>"" должно быть заполнено!";
Отказ = Истина;
//Обязательное - 5-8 и 13-16 и 18-26 всегда заполнены в хмл
//Обязательное - 9-11 пустые теги могут быть, проверка не возможна
//Обязательное - 12
ИначеЕсли Не ЗначениеЗаполнено(СтруктураДанных.СтатусПолучателя) Тогда
ТекстОшибки = "Поле ""Статус получателя <recipientStatus>"" должно быть заполнено!";
Отказ = Истина;
//Обязательное - 17
Иначе
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если Не ЗначениеЗаполнено(Строка.НоменклатураСтр) Тогда
ТекстОшибки = "Поле ""Наименование товаров (работ, услуг), имущественных прав (roster) <name>"" должно быть заполнено!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Показать
СтруктураДанных это хмл представленная в виде структуры данных с типами 1С.
Вывод: по правилу 49 и 58 они имеют ошибки будут дорабатываться, реализовать в полной мере нельзя. Доработка управления вычетами и аннулирования через компоненту будет обсуждаться в 2017 году и возможно будет доступно после очередного обновления!
Переписка, где всплыли косяки по правилам!
Вопрос был по 49:
Добиваю последнее правило 49.
Текст не буду копировать, он большой, да и вопросы пока походу не все по нему.
Для начала:
1. Перевыставляемыми суммами НДС считаются только значения из граф "Сумма НДС" строк, для которых применен признак "Не подлежит вычету" (в текущем ЭСЧФ и всех дополнительных к нему)
Это откуда берется? Или это правило не реализовать на нашей стороне? А только на стороне портала?
Ответ:
Правило и его реализация будет изменено в ближайшем регламентном обновлении.
Действительно, перевыставлять можно только суммы НДС, по которым проставлен признак Не подлежит вычету. Единственное, перевыставлять можно будет ссылаясь не только на типы исходный, исправленный и дополнительный без ссылки, но и на ДОПОЛНИТЕЛЬНЫЙ СО ССЫЛКОЙ (что сейчас сделать не позволяет система).
Исходный и дополнительный к нему будут рассматриваться как отдельные документы и перевыставлять можно будет суммы НДС которые не подлежат вычету в конкретном документе, отдельно в исходном, отдельно в дополнительном к нему.
Если на портал придет ЭСЧФ с суммой НДС больше, чем позволено перевыставить, то портал такую ЭСЧФ "завернет".
По поводу необходимости реализации контроля на стороне УС, сказать сложно, так как Вам нужно будет при каждом перевыставлении проверять Остаток по входящей ЭСЧФ, доступный для перевыставления. Если ваша организация будет подавать ЭСЧФ исключительно через web-сервис, то проблем нет, но если понадобиться необходимость подать (перевыставить) часть через Портал, а часть через веб-сервис, ссылаясь на один и тот же входящий эсчф, то и информацию по остатку НДС, не подлежащего вычету должен предоставить портал.
Алгоритм взаимодействия между УС и Порталом, в том числе и управление вычетами на стороне УС, аннулирование на стороне УС сейчас находиться на стадии обсуждения с МНС и планируется дорабатывать в 2017 году.
По правилу 58:
Правило-58 При перевыставлении позволять ссылаться на ЭСЧФ продавца, когда составитель текущего ЭСЧФ и ЭСЧФ продавца - с/х с одним и тем же УНП. Данный УНП в ЭСЧФ продавца должен быть получателем со статусом «Покупатель о
Поясните о чем здесь идет речь?
Ответ:
Субъект хозяйствования может при перевыставлении ссылаться в поле 11 или 12 на ЭСЧФ по покупке товаров/услуг у иностранца на территории РБ, то есть статусы Иностранная организация у поставщика и Покупатель объектов у иностранной организации у получателя.
Встречный вопрос:
В инструкции в примечании сказано, что это относится только к 12 пункту, а вы сейчас написали или 11?
Но сравнивать УНН мне нужно от какого реквизита? Поставщика исходной и получателя входящей?
Или здесь про тег «sender» идет речь?
Ответ встречный:
Исправили ошибку в правиле-58.
При перевыставлении позволять ссылаться на ЭСЧФ продавца/комитента, когда составитель текущего ЭСЧФ и ЭСЧФ продавца/комитента - с/х с одним и тем же УНП. Данный УНП в ЭСЧФ продавца/комитента должен быть получателем со статусом «Покупатель объектов у иностранной организации».
Сравнивать нужно УНП Поставщика исходной (это будет Ваш УНП в поле 8) и получателя входящей (тоже будет Ваш УНПв поле 17). При этом статусы во входящей, на которую вы ссылаетесь в поле 11 или 12 должны быть ИО-Покупатель объектов у ИО. Только в таком случае допустимо совпадение УНП у поставщика и ЭСЧФ продавца/комитента при перевыставлении сумм НДС, не подлежащих вычету.
Если статусы во входящей будут ИО-Покупатель, и вы будете ссылаться на такую ЭСЧФ в поле 11 или 12 (опять же УНП совпадают в поставщике и поле 11 или 12), то система выдаст соответствующее сообщение и не позволит перевыставить суммы НДС.
Дополнительный вопрос:
С реквизитами понял!
А что значит «не подлежащих вычету»
Это программа должна, как понимать?
Дополнен ответ:
На текущий момент управление вычетами не реализовано через веб-сервис, поставить признак "не подлежит вычету" можно только на портале в личном кабинете.
#Область ПроверкаЗаполненияПолей
//Правило-1
// Если тип ЭСЧФ – Дополнительный (со ссылкой на ЭСЧФ) или Исправленный, то
// поле «К ЭСЧФ» обязательно для заполнения.
//Правило-1.1
// Дата совершения дополнительного ЭСЧФ не должна быть меньше (раньше) даты
// совершения исходного (исправленного) ЭСЧФ.
//
Процедура ПроверкаЗаполненияПолейПравило1(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Дополнительный ИЛИ
СтруктураДанных.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исправленный Тогда
//Поле 5 должно быть заполнено
Если ЗначениеЗаполнено(СтруктураДанных.ИсходныйЭСЧФ) Тогда
//Поле 5.1 не должно быть меньше даты совершения исходного (исправленного) ЭСЧФ
Если СтруктураДанных.ДатаСовершенияОперации < Документ.ДатаСовершенияОперации Тогда
ТекстОшибки = "Поле 3. Дата совершения операции не должно быть меньше даты совершения исходного (исправленного) ЭСЧФ!";
Отказ = Истина;
КонецЕсли;
Иначе
ТекстОшибки = "Поле 5. Исходный ЭСЧФ не заполнено!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-2
// При заполнении поля «К ЭСЧФ», можно ввести только номер Исходного или Исправленного ЭСЧФ.
//
Процедура ПроверкаЗаполненияПолейПравило2(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Поле 5 должно быть заполнено
Если ЗначениеЗаполнено(СтруктураДанных.ИсходныйЭСЧФ) Тогда
Если Не (Документ.ИсходныйЭСЧФ.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исходный ИЛИ
Документ.ИсходныйЭСЧФ.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исправленный) Тогда
ТекстОшибки = "В поле 5. Исходный ЭСЧФ можно ввести только номер Исходного или Исправленного ЭСЧФ!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-3
// ЭСЧФ, номер которого прописывается в поле 5. "К ЭСЧФ" должен быть со статусом
// «Выставлен» или «Выставлен. Подписан получателем».
//Правило-3.1
// У родительского и дочерних ЭСЧФ должен быть один составитель (sender).
//
Процедура ПроверкаЗаполненияПолейПравило3(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Поле 5 должно быть заполнено
Если ЗначениеЗаполнено(СтруктураДанных.ИсходныйЭСЧФ) Тогда
СтатусНаПортале = "";
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
| СостоянияЭД.ДействияСоСтороныДругогоУчастника КАК СтатусНаПортале
|ИЗ
| РегистрСведений.СостоянияЭД КАК СостоянияЭД
|ГДЕ
| СостоянияЭД.СсылкаНаОбъект = &СсылкаНаОбъект";
Запрос.УстановитьПараметр("СсылкаНаОбъект", Документ.ИсходныйЭСЧФ);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл
СтатусНаПортале = Выборка.СтатусНаПортале;
КонецЦикла;
Если СтатусНаПортале = "Выставлен" ИЛИ СтатусНаПортале = "Выставлен. Подписан получателем" Тогда
Если Документ.Организация <> Документ.ИсходныйЭСЧФ.Организация Тогда
ТекстОшибки = "У родительского и дочерних ЭСЧФ должна быть одна организация!";
Отказ = Истина;
КонецЕсли;
Иначе
ТекстОшибки = "ЭСЧФ в поле 5. Исходный ЭСЧФ должна быть со статусом «Выставлен» или «Выставлен. Подписан получателем»!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-4
// Если тип ЭСЧФ – Исправленный, то поле «дата аннулирования» обязательно для заполнения.
//
Процедура ПроверкаЗаполненияПолейПравило4(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исправленный Тогда
Если Не ЗначениеЗаполнено(СтруктураДанных.ДатаАннулирования) Тогда
ТекстОшибки = "Поле 5.1. Дата аннулирования обязательно для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-5-удалено
// Дата аннулирования у исправленного может быть либо равна дате совершения Исходного
// (предыдущего Исправленного), либо дате совершения исправленного
//Правило-5.1
// Дата аннулирования не должна быть меньше даты совершения одного ЭСЧФ
//
Процедура ПроверкаЗаполненияПолейПравило5(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исправленный Тогда
Если СтруктураДанных.ДатаАннулирования < СтруктураДанных.ДатаСовершенияОперации Тогда
ТекстОшибки = "Дата аннулирования не должна быть меньше даты совершения операции!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-6
// Статус поставщика зависит от статуса получателя (смотрите таблицу соответствия).
//
Процедура ПроверкаЗаполненияПолейПравило6(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Продавец
Если СтруктураДанных.СтатусПоставщика = "SELLER" Тогда
//Покупатель / Потребитель / Комиссионер
Если Не (СтруктураДанных.СтатусПолучателя = "CUSTOMER" ИЛИ
СтруктураДанных.СтатусПолучателя = "CONSUMER" ИЛИ
СтруктураДанных.СтатусПолучателя = "COMMISSIONAIRE") Тогда
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
//Комитент
ИначеЕсли СтруктураДанных.СтатусПоставщика = "CONSIGNOR" Тогда
//Комиссионер
Если Не СтруктураДанных.СтатусПолучателя = "COMMISSIONAIRE" Тогда
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
//Комиссионер
ИначеЕсли СтруктураДанных.СтатусПоставщика = "COMMISSIONAIRE" Тогда
//Покупатель / Потребитель / Комитент / Комиссионер
Если Не (СтруктураДанных.СтатусПолучателя = "CUSTOMER" ИЛИ
СтруктураДанных.СтатусПолучателя = "CONSUMER" ИЛИ
СтруктураДанных.СтатусПолучателя = "CONSIGNOR" ИЛИ
СтруктураДанных.СтатусПолучателя = "COMMISSIONAIRE") Тогда
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
//Плательщик, передающий налоговые вычеты
ИначеЕсли СтруктураДанных.СтатусПоставщика = "TAX_DEDUCTION_PAYER" Тогда
//Покупатель, получающий налоговые вычеты
Если Не СтруктураДанных.СтатусПолучателя = "TAX_DEDUCTION_RECIPIENT" Тогда
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
//Доверительный управляющий
ИначеЕсли СтруктураДанных.СтатусПоставщика = "TRUSTEE" Тогда
//Покупатель
Если Не СтруктураДанных.СтатусПолучателя = "CUSTOMER" Тогда
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
//Иностранная организация
ИначеЕсли СтруктураДанных.СтатусПоставщика = "FOREIGN_ORGANIZATION" Тогда
//Покупатель / Покупатель объектов у иностранной организации
Если Не (СтруктураДанных.СтатусПолучателя = "CUSTOMER" ИЛИ
СтруктураДанных.СтатусПолучателя = "FOREIGN_ORGANIZATION_BUYER") Тогда
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
//Посредник
ИначеЕсли СтруктураДанных.СтатусПоставщика = "AGENT" Тогда
//Потребитель
Если Не СтруктураДанных.СтатусПолучателя = "CONSUMER" Тогда
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
//Заказчик (застройщик)
ИначеЕсли СтруктураДанных.СтатусПоставщика = "DEVELOPER" Тогда
//Потребитель
Если Не СтруктураДанных.СтатусПолучателя = "CONSUMER" Тогда
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
//Плательщик, передающий обороты по реализации
ИначеЕсли СтруктураДанных.СтатусПоставщика = "TURNOVERS_ON_SALE_PAYER" Тогда
//Плательщик, получающий обороты по реализации
Если Не СтруктураДанных.СтатусПолучателя = "TURNOVERS_ON_SALE_RECIPIENT" Тогда
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
Иначе
ТекстОшибки = "Статус поставщика не удовлетворяет статусу получателя!";
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
//Правило-7
// Если субъект хозяйствования, составляющий ЭСЧФ, является получателем, то поля ЭСЧФ
// 6.1, 6.2, 6.3, 6.4 должны принимать значение false
//
Процедура ПроверкаЗаполненияПолейПравило7(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если Документ.Получатель = Документ.Организация.Контрагент Тогда
Если СтруктураДанных.ПоставщикПризнакВзаимозависимогоЛица ИЛИ
СтруктураДанных.ПоставщикПризнакКрупногоПлательщика ИЛИ
СтруктураДанных.ПоставщикПризнакСделкиСРезидентомОффшорнойЗоны ИЛИ
СтруктураДанных.ПоставщикПризнакСделкиСТоварамиПоПеречню Тогда
ТекстОшибки = "Поля ЭСЧФ 6.1, 6.2, 6.3, 6.4 должны принимать значение false!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-8
// Если указан признак взаимозависимого лица у продавца или получателя,
// то поля «код ТНВЭД ЕАЭС» (от 4 до 10 цифр) или «код ОКЭД» (5 цифр)
// являются обязательными для заполнения для всех строк.
//
Процедура ПроверкаЗаполненияПолейПравило8(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.ПоставщикПризнакВзаимозависимогоЛица ИЛИ
СтруктураДанных.ПолучательПризнакВзаимозависимогоЛица Тогда
ЕстьОшибка = Ложь;
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если Не (ЗначениеЗаполнено(Строка.ТНВЭД) ИЛИ ЗначениеЗаполнено(Строка.ОКЭД)) Тогда
ЕстьОшибка = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЕстьОшибка Тогда
ТекстОшибки = "«код ТНВЭД ЕАЭС» (от 4 до 10 цифр) или «код ОКЭД» (5 цифр) являются обязательными для заполнения для всех строк!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-9
// Если статус поставщика – «иностранная организация», то страной поставщика не
// может быть Республика Беларусь
//
Процедура ПроверкаЗаполненияПолейПравило9(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Иностранная организация
Если СтруктураДанных.СтатусПоставщика = "FOREIGN_ORGANIZATION" Тогда
Если СтруктураДанных.КодСтраныПоставщика = "112" Тогда
ТекстОшибки = "Статус поставщика – «иностранная организация», тогда страной поставщика не может быть Республика Беларусь!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-10
// Если пользователь указал статус любой, кроме «иностранная организация», то УНП поставщика
// должен соответствовать УНП субъекта хозяйствования, составляющего ЭСЧФ (элемент sender).
//
Процедура ПроверкаЗаполненияПолейПравило10(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Иностранная организация
Если Не СтруктураДанных.СтатусПоставщика = "FOREIGN_ORGANIZATION" Тогда
Если СтруктураДанных.УНППоставщика <> Документ.Организация.ИНН Тогда
ТекстОшибки = "УНП поставщика должен соответствовать УНП субъекта хозяйствования, составляющего ЭСЧФ (элемент sender)!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-11
// В разделе поставщика или получателя должен быть указан УНП, отраженный в
// элементе sender (субъект хозяйствования, составляющий ЭСЧФ).
//
Процедура ПроверкаЗаполненияПолейПравило11(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.УНППоставщика <> Документ.Организация.ИНН И СтруктураДанных.УНППолучателя <> Документ.Организация.ИНН Тогда
ТекстОшибки = "В разделе поставщика или получателя должен быть указан УНП, отраженный в элементе sender (субъект хозяйствования, составляющий ЭСЧФ)!";
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
//Правило-12
// УНП продавца и получателя не должны быть одинаковыми в одном ЭСЧФ.
//
Процедура ПроверкаЗаполненияПолейПравило12(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.УНППоставщика = СтруктураДанных.УНППолучателя Тогда
ТекстОшибки = "УНП продавца и получателя не должны быть одинаковыми в одном ЭСЧФ!";
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
//Правило-13
// Если поле УНП для которого проставлена страна Беларусь не пустое, то УНП должен
// существовать в реестре налогоплательщиков.
//Правило-13-1
// Название организации обязательно, если указана страна Беларусь и поле УНП не пустое
//
Процедура ПроверкаЗаполненияПолейПравило13(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
МассивПроверкиУНП = Новый Массив;
Если СтруктураДанных.КодСтраныПоставщика = "112" Тогда
Если ЗначениеЗаполнено(СтруктураДанных.УНППоставщика) Тогда
//Правило-13-1
Если Не ЗначениеЗаполнено(СтруктураДанных.ИмяПоставщика) Тогда
ТекстОшибки = "Название организации обязательно, если указана страна Беларусь и поле УНП не пустое!";
Отказ = Истина;
Возврат;
КонецЕсли;
МассивПроверкиУНП.Добавить(СтруктураДанных.УНППоставщика);
КонецЕсли;
КонецЕсли;
Если СтруктураДанных.КодСтраныПолучателя = "112" Тогда
Если ЗначениеЗаполнено(СтруктураДанных.УНППолучателя) Тогда
//Правило-13-1
Если Не ЗначениеЗаполнено(СтруктураДанных.ИмяПолучателя) Тогда
ТекстОшибки = "Название организации обязательно, если указана страна Беларусь и поле УНП не пустое!";
Отказ = Истина;
Возврат;
КонецЕсли;
МассивПроверкиУНП.Добавить(СтруктураДанных.УНППолучателя);
КонецЕсли;
КонецЕсли;
Для Каждого Строка Из СтруктураДанных.Грузоотправитель Цикл
Если Строка.КодСтраныГрузоотправитель = "112" Тогда
Если ЗначениеЗаполнено(Строка.УНПГрузоотправитель) Тогда
МассивПроверкиУНП.Добавить(Строка.УНПГрузоотправитель);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого Строка Из СтруктураДанных.Грузополучатель Цикл
Если Строка.КодСтраныГрузополучатель = "112" Тогда
Если ЗначениеЗаполнено(Строка.УНПГрузополучатель) Тогда
МассивПроверкиУНП.Добавить(Строка.УНПГрузополучатель);
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого СтрокаУНП Из МассивПроверкиУНП Цикл
СтатусПроверки = Справочники.Контрагенты.ПроверкаНалогоплательщика(СтрокаУНП);
Если СтатусПроверки = Ложь Тогда
ТекстОшибки = "Если поле УНП для которого проставлена страна Беларусь не пустое, то УНП должен существовать в реестре налогоплательщиков!";
Отказ = Истина;
Прервать;
ИначеЕсли СтатусПроверки = Неопределено Тогда
ТекстОшибки = "Не удалось проверить существование УНП в реестре налогоплательщиков! Повторите проверку.";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//Правило-14
// Если заполнено поле «номер» или «дата» в пунктах 14, 21, то поля «дата» и «номер»
// обязательны для заполнения для одних и тех же пунктов.
//
Процедура ПроверкаЗаполненияПолейПравило14(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.ПоставщикНомерЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаЗаявленияОВвозеТоваров) Тогда
Если Не (ЗначениеЗаполнено(СтруктураДанных.ПоставщикНомерЗаявленияОВвозеТоваров) И
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаЗаявленияОВвозеТоваров)) Тогда
ТекстОшибки = "Если заполнено поле «номер» или «дата» в пунктах 14, 21, то поля «дата» и «номер» обязательны для заполнения для одних и тех же пунктов!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.ПолучательНомерЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПолучательДатаЗаявленияОВвозеТоваров) Тогда
Если Не (ЗначениеЗаполнено(СтруктураДанных.ПолучательНомерЗаявленияОВвозеТоваров) И
ЗначениеЗаполнено(СтруктураДанных.ПолучательДатаЗаявленияОВвозеТоваров)) Тогда
ТекстОшибки = "Если заполнено поле «номер» или «дата» в пунктах 14, 21, то поля «дата» и «номер» обязательны для заполнения для одних и тех же пунктов!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-15-удалено
// Поля 11. «Номер ЭСЧФ комитента» (номер и дата) и поле 12. «Номер ЭСЧФ продавца»
// (номер и дата) являются взаимоисключающими друг друга, т.е. если заполнено, например,
// поле 11, то поле 12 должно оставаться пустым.
//Правило-15.1
// ЭСЧФ, указанный в 11. «Номер ЭСЧФ комитента» или 12. «Номер ЭСЧФ продавца» и ЭСЧФ,
// в котором указывается номер комитента или номер продавца, должны отправляться
// на Портал разными поставщиками, т. е. УНП в таких ЭСЧФ в полях sender должны отличаться.
//
Процедура ПроверкаЗаполненияПолейПравило15(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если Документ.Организация.Контрагент = Документ.НомерСчетаКомитента.Поставщик ИЛИ
Документ.Организация.Контрагент = Документ.НомерСчетаПродавца.Поставщик Тогда
ТекстОшибки = "ЭСЧФ, указанный в 11. «Номер ЭСЧФ комитента» или 12. «Номер ЭСЧФ продавца» и ЭСЧФ, в котором указывается номер комитента или номер продавца, должны отправляться на Портал разными поставщиками, т. е. УНП в таких ЭСЧФ в полях sender должны отличаться!";
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
//Правило-16
// Поле 11. «Номер ЭСЧФ комитента» доступно для заполнения, если в поле статус поставщика
// проставлено значение «комиссионер», а в поле статус получателя – «покупатель».
//
Процедура ПроверкаЗаполненияПолейПравило16(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.НомерСчетаКомитента) Тогда
//Комиссионер и Покупатель
Если Не (СтруктураДанных.СтатусПоставщика = "COMMISSIONAIRE" И СтруктураДанных.СтатусПолучателя = "CUSTOMER") Тогда
ТекстОшибки = "Поле 11. «Номер ЭСЧФ комитента» доступно для заполнения, если в поле статус поставщика проставлено значение «комиссионер», а в поле статус получателя – «покупатель»!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-17
// Если в полях статусов поставщика - получателя проставлены значения «комиссионер» – «покупатель»,
// поле 11. «Номер ЭСЧФ комитента» – обязательно для заполнения
//
Процедура ПроверкаЗаполненияПолейПравило17(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Комиссионер и Покупатель
Если СтруктураДанных.СтатусПоставщика = "COMMISSIONAIRE" И СтруктураДанных.СтатусПолучателя = "CUSTOMER" Тогда
Если Не ЗначениеЗаполнено(СтруктураДанных.НомерСчетаКомитента) Тогда
ТекстОшибки = "Если в полях статусов поставщика - получателя проставлены значения «комиссионер» – «покупатель», поле 11. «Номер ЭСЧФ комитента» – обязательно для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-18
// В поле 11. «Номер ЭСЧФ комитента» должен быть указан номер ЭСЧФ, в котором текущий
// субъект хозяйствования указан как получатель.
//
Процедура ПроверкаЗаполненияПолейПравило18(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.НомерСчетаКомитента) Тогда
Если СтруктураДанных.УНППоставщика <> Документ.НомерСчетаКомитента.Получатель.ИНН Тогда
ТекстОшибки = "В поле 11. «Номер ЭСЧФ комитента» должен быть указан номер ЭСЧФ, в котором текущий субъект хозяйствования указан как получатель!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-19
// Если в полях статусов поставщика-получателя проставлены: «комиссионер» –
// «комитент», «посредник» – «потребитель», то 12. «Номер ЭСЧФ продавца»,
// 13. «Регистрационный номер выпуска товаров» или
// 14. «Реквизиты заявления о ввозе товаров и уплате косвенных налогов» –
// один из реквизитов обязателен для заполнения.
//Правило-19.1
// Если в полях статусов поставщика-получателя проставлены: «комиссионер» –
// «комиссионер», то 11. Номер ЭСЧФ комитента, 12. «Номер ЭСЧФ продавца»,
// 13. «Регистрационный номер выпуска товаров» или
// 14. «Реквизиты заявления о ввозе товаров и уплате косвенных налогов» –
// одно из полей обязательно для заполнения.
//
Процедура ПроверкаЗаполненияПолейПравило19(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Комиссионер и Комитент / Посредник и Потребитель
Если СтруктураДанных.СтатусПоставщика = "COMMISSIONAIRE" И СтруктураДанных.СтатусПолучателя = "CONSIGNOR" ИЛИ
СтруктураДанных.СтатусПоставщика = "AGENT" И СтруктураДанных.СтатусПолучателя = "CONSUMER" Тогда
Если Не ЗначениеЗаполнено(СтруктураДанных.НомерСчетаПродавца) И
Не ЗначениеЗаполнено(СтруктураДанных.ПоставщикРегистрационныйНомерВыпускаТоваров) ИЛИ
Не (ЗначениеЗаполнено(СтруктураДанных.ПоставщикНомерЗаявленияОВвозеТоваров) И
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаЗаявленияОВвозеТоваров)) Тогда
ТекстОшибки = "Правило-19 не выполнено! См. правила заполнения полей.";
Отказ = Истина;
КонецЕсли;
//Комиссионер и Комиссионер
ИначеЕсли СтруктураДанных.СтатусПоставщика = "COMMISSIONAIRE" И СтруктураДанных.СтатусПолучателя = "COMMISSIONAIRE" Тогда
Если Не ЗначениеЗаполнено(СтруктураДанных.НомерСчетаПродавца) И
Не ЗначениеЗаполнено(СтруктураДанных.ПоставщикРегистрационныйНомерВыпускаТоваров) ИЛИ
Не (ЗначениеЗаполнено(СтруктураДанных.ПоставщикНомерЗаявленияОВвозеТоваров) И
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаЗаявленияОВвозеТоваров)) Тогда
ТекстОшибки = "Правило-19.1 не выполнено! См. правила заполнения полей.";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-20
// Поле 12. «Номер ЭСЧФ продавца» доступно для заполнения, если в поле статус
// поставщика проставлено значение «комиссионер» – «комитент», «посредник» – «потребитель»
// или «заказчик (застройщик)» – «потребитель»
//
Процедура ПроверкаЗаполненияПолейПравило20(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Комиссионер и Комитент / Посредник и Потребитель / Заказчик (застройщик) и Потребитель
Если СтруктураДанных.СтатусПоставщика = "COMMISSIONAIRE" И СтруктураДанных.СтатусПолучателя = "CONSIGNOR" ИЛИ
СтруктураДанных.СтатусПоставщика = "AGENT" И СтруктураДанных.СтатусПолучателя = "CONSUMER" ИЛИ
СтруктураДанных.СтатусПоставщика = "DEVELOPER" И СтруктураДанных.СтатусПолучателя = "CONSUMER" Тогда
Если ЗначениеЗаполнено(СтруктураДанных.НомерСчетаПродавца) Тогда
ТекстОшибки = "Поле 12. «Номер ЭСЧФ продавца» доступно для заполнения, если в поле статус поставщика проставлено значение «комиссионер» – «комитент», «посредник» – «потребитель» или «заказчик (застройщик)» – «потребитель»!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-21
// В поле 12. «Номер ЭСЧФ продавца» можно указать номер ЭСЧФ, в котором текущий
// субъект хозяйствования указан как получатель.
//
Процедура ПроверкаЗаполненияПолейПравило21(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.НомерСчетаПродавца) Тогда
Если Документ.НомерСчетаПродавца.Получатель <> Документ.Организация.Контрагент Тогда
ТекстОшибки = "В поле 12. «Номер ЭСЧФ продавца» можно указать номер ЭСЧФ, в котором текущий субъект хозяйствования указан как получатель!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-22
// Поле 13. Регистрационный номер выпуска товаров доступно для заполнения, если
// 1) В поле статусов поставщика – получателя проставлены:
// «комиссионер» – «комитент», «посредник» – «потребитель», «заказчик(застройщик)» – «потребитель»
// вне зависимости от значений в полях «код страны».
// 2) При статусах «продавец» – «покупатель»:
// 2.1) в строке 7. «Код страны поставщика» должна быть указана Республика Беларусь, а
// в строке 16. «Код страны получателя» – код страны, не входящей в страны ЕАЭС;
// или 2.2) в строке 16. «Код страны получателя» указывается код страны,
// входящей в страны ЕАЭС (и не Республика Беларусь), а в строке 26. «Код страны грузополучателя» - код
// страны, не входящей в страны ЕАЭС.
//Правило-22.1
// Если в полях статусов поставщика-получателя проставлены «продавец» - «покупатель» и при этом,
// указана страна покупателя любая кроме Республики Беларусь, а также, хотя бы для одной строки
// заполнен 3.1. Код ТН ВЭД и 8. Ставка НДС равна 0%, то строка 13 "Регистрационный номер выпуска товаров"
// или 14. "Реквизиты заявления о ввозе товаров и уплате косвенных налогов" обязательны для заполнения.
//
Процедура ПроверкаЗаполненияПолейПравило22(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.ПоставщикРегистрационныйНомерВыпускаТоваров) Тогда
//Правило 22
//22 п. 1) Комиссионер и Комитент / Посредник и Потребитель / Заказчик (застройщик) и Потребитель
Если СтруктураДанных.СтатусПоставщика = "COMMISSIONAIRE" И СтруктураДанных.СтатусПолучателя = "CONSIGNOR" ИЛИ
СтруктураДанных.СтатусПоставщика = "AGENT" И СтруктураДанных.СтатусПолучателя = "CONSUMER" ИЛИ
СтруктураДанных.СтатусПоставщика = "DEVELOPER" И СтруктураДанных.СтатусПолучателя = "CONSUMER" Тогда
//22 п. 2) Продавец и Покупатель
ИначеЕсли СтруктураДанных.СтатусПоставщика = "SELLER" И СтруктураДанных.СтатусПолучателя = "CUSTOMER" Тогда
//22 п. 2.1 и п.2.2
ТипГрузополучатель = 1;
Для Каждого Строка Из Документ.Грузополучатель Цикл
ТипГрузополучатель = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Строка.Грузополучатель);
Если ТипГрузополучатель = 3 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
ТипПолучателя = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Документ.Получатель);
Если СтруктураДанных.КодСтраныПоставщика = "112" И ТипПолучателя = 3 ИЛИ
ТипПолучателя = 2 И СтруктураДанных.КодСтраныПолучателя <> "112" И ТипГрузополучатель = 3 Тогда
Иначе
ТекстОшибки = "Поле 13. Регистрационный номер выпуска товаров не доступно для заполнения!";
Отказ = Истина;
КонецЕсли;
Иначе
ТекстОшибки = "Поле 13. Регистрационный номер выпуска товаров не доступно для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
//Продавец и Покупатель
Если СтруктураДанных.СтатусПоставщика = "SELLER" И СтруктураДанных.СтатусПолучателя = "CUSTOMER" Тогда
//22.1
ЗаданКодТНВЭД = Ложь;
СтавкаНоль = Ложь;
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если ЗначениеЗаполнено(Строка.ТНВЭД) Тогда
ЗаданКодТНВЭД = Истина;
Если СтавкаНоль Тогда
Прервать;
КонецЕсли;
КонецЕсли;
Если Строка.СтавкаНДС = 0 Тогда
СтавкаНоль = Истина;
Если ЗаданКодТНВЭД Тогда
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
//Правило-22.1
Если СтруктураДанных.КодСтраныПолучателя <> "112" И ЗаданКодТНВЭД И СтавкаНоль Тогда
Если Не (ЗначениеЗаполнено(СтруктураДанных.ПоставщикРегистрационныйНомерВыпускаТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПоставщикНомерЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаЗаявленияОВвозеТоваров)) Тогда
ТекстОшибки = "13 ""Регистрационный номер выпуска товаров"" или 14. ""Реквизиты заявления о ввозе товаров и уплате косвенных налогов"" обязательны для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-23
// Если заполнено поле 13 «Регистрационный номер выпуска товаров» и статус поставщика
// – "Продавец", а получателя – "Покупатель", то даты из полей ЭСЧФ 13.1 и 13.2 тоже
// обязательны для заполнения.
//Правило-23.1
// Если заполнены поля 13.1 "Дата выпуска товара" и 13.2 "Дата разрешения на убытие товаров",
// то поле 13 «Регистрационный номер выпуска товаров» - обязательное для заполнения.
//
Процедура ПроверкаЗаполненияПолейПравило23(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Продавец и Покупатель
Если ЗначениеЗаполнено(СтруктураДанных.ПоставщикРегистрационныйНомерВыпускаТоваров) И
СтруктураДанных.СтатусПоставщика = "SELLER" И СтруктураДанных.СтатусПолучателя = "CUSTOMER" Тогда
Если Не (ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаВыпускаТоваров) И
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаРазрешенияНаУбытиеТоваров)) Тогда
ТекстОшибки = "Если заполнено поле 13 «Регистрационный номер выпуска товаров» и статус поставщика – ""Продавец"", а получателя – ""Покупатель"", то даты из полей ЭСЧФ 13.1 и 13.2 тоже обязательны для заполнения!";
Отказ = Истина;
КонецЕсли;
//Правило-23.1
ИначеЕсли ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаВыпускаТоваров) И
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаРазрешенияНаУбытиеТоваров) Тогда
Если Не ЗначениеЗаполнено(СтруктураДанных.ПоставщикРегистрационныйНомерВыпускаТоваров) Тогда
ТекстОшибки = "Если заполнены поля 13.1 ""Дата выпуска товара"" и 13.2 ""Дата разрешения на убытие товаров"", то поле 13 «Регистрационный номер выпуска товаров» - обязательное для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-24-удалено
// Поля 13. «Реквизиты деклараций на товары», 14. «Реквизиты заявления о ввозе
// товаров и уплате косвенных налогов», 20. «Регистрационный номер выпуска товаров», 21.
// «Реквизиты заявления о ввозе товаров и уплате косвенных налогов» являются
// взаимоисключающими друг друга. Т.е., если заполнено поле, например, 21. «Реквизиты
// заявления о ввозе товаров и уплате косвенных налогов», то поля под номерами 13,14, и 20
// должны оставаться пустыми.
//
Процедура ПроверкаЗаполненияПолейПравило24(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
//Правило-25
// Поле 14. «Реквизиты заявления о ввозе товаров и уплате косвенных налогов» доступно для заполнения, если:
// 1) в поле статусов поставщика – получателя проставлены: «комиссионер» – «комитент»,
// «посредник» – «потребитель», «заказчик (застройщик)» – «потребитель» вне зависимости от значений
// в полях «код страны»;
// 2) При статусах «продавец» – «покупатель»:
// 2.1) «код страны поставщика» – Республика Беларусь, а в строке 16 «код страны получателя»
// указана страна, входящая в страны ЕАЭС (и не Республика Беларусь);
// 2.2) покупатель – плательщик из стран, не входящих в страны ЕАЭС (и не Республики Беларусь),
// а грузополучатель – плательщик, являющийся резидентом страны из ЕАЭС (и не из Республики Беларусь).
//
Процедура ПроверкаЗаполненияПолейПравило25(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.ПоставщикНомерЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаЗаявленияОВвозеТоваров) Тогда
ТипПолучателя = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Документ.Получатель);
ГрузополучательЕАЭС = Ложь;
Для Каждого Строка Из СтруктураДанных.Грузополучатель Цикл
ТипГрузополучателя = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Документ.Грузополучатель[СтруктураДанных.Грузополучатель.Индекс(Строка)].Грузополучатель);
Если Строка.КодСтраныГрузополучатель <> "112" И ТипГрузополучателя = 2 Тогда
ГрузополучательЕАЭС = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
//Комиссионер и Комитент / Посредник и Потребитель / Заказчик (застройщик) и Потребитель
Если СтруктураДанных.СтатусПоставщика = "COMMISSIONAIRE" И СтруктураДанных.СтатусПолучателя = "CONSIGNOR" ИЛИ
СтруктураДанных.СтатусПоставщика = "AGENT" И СтруктураДанных.СтатусПолучателя = "CONSUMER" ИЛИ
СтруктураДанных.СтатусПоставщика = "DEVELOPER" И СтруктураДанных.СтатусПолучателя = "CONSUMER" Тогда
//Продавец и Покупатель
ИначеЕсли СтруктураДанных.СтатусПоставщика = "SELLER" И СтруктураДанных.СтатусПолучателя = "CUSTOMER" Тогда
Если СтруктураДанных.КодСтраныПоставщика = "112" И СтруктураДанных.КодСтраныПолучателя <> "112" И ТипПолучателя = 2 Тогда
ИначеЕсли ТипПолучателя = 3 И ГрузополучательЕАЭС Тогда
Иначе
ТекстОшибки = "Поле 14. «Реквизиты заявления о ввозе товаров и уплате косвенных налогов» не доступно для заполнения!";
Отказ = Истина;
КонецЕсли;
Иначе
ТекстОшибки = "Поле 14. «Реквизиты заявления о ввозе товаров и уплате косвенных налогов» не доступно для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-26
// Если субъект хозяйствования, составляющий ЭСЧФ, является поставщиком, то поля
// 15.1, 15.2, 15.3, 15.4 должны принимать значение false.
//
Процедура ПроверкаЗаполненияПолейПравило26(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если Документ.Поставщик = Документ.Организация.Контрагент Тогда
Если СтруктураДанных.ПолучательПризнакВзаимозависимогоЛица ИЛИ
СтруктураДанных.ПолучательПризнакКрупногоПлательщика ИЛИ
СтруктураДанных.ПолучательПризнакСделкиСРезидентомОффшорнойЗоны ИЛИ
СтруктураДанных.ПолучательПризнакСделкиСТоварамиПоПеречню Тогда
ТекстОшибки = "Поля ЭСЧФ 15.1, 15.2, 15.3, 15.4 должны принимать значение false!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-27
// Если субъект хозяйствования, составляющий ЭСЧФ, указал статус поставщика –
// «иностранная организация», то УНП получателя должен соответствовать УНП
// субъекта хозяйствования, составляющего ЭСЧФ (элемент sender).
//
Процедура ПроверкаЗаполненияПолейПравило27(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Иностранная организация
Если СтруктураДанных.СтатусПоставщика = "FOREIGN_ORGANIZATION" Тогда
Если СтруктураДанных.УНППолучателя <> Документ.Организация.Контрагент.ИНН Тогда
ТекстОшибки = "Если субъект хозяйствования, составляющий ЭСЧФ, указал статус поставщика – «иностранная организация», то УНП получателя должен соответствовать УНП субъекта хозяйствования, составляющего ЭСЧФ (элемент sender)!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-28-удалено
// Нет описания
//
Процедура ПроверкаЗаполненияПолейПравило28(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
//Правило-29
// Поле 20. «Регистрационный номер выпуска товаров» или 21. «Реквизиты заявления о
// ввозе товаров и уплате косвенных налогов» обязательно для заполнения, если у поставщика
// проставлен статус «Иностранная организация», а у получателя статус «Покупатель».
//
Процедура ПроверкаЗаполненияПолейПравило29(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Иностранная организация и Покупатель
Если СтруктураДанных.СтатусПоставщика = "FOREIGN_ORGANIZATION" И
СтруктураДанных.СтатусПолучателя = "CUSTOMER" Тогда
Если Не (ЗначениеЗаполнено(СтруктураДанных.ПолучательРегистрационныйНомерВыпускаТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПолучательНомерЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПолучательДатаЗаявленияОВвозеТоваров)) Тогда
ТекстОшибки = "Поле 20. «Регистрационный номер выпуска товаров» или 21. «Реквизиты заявления о ввозе товаров и уплате косвенных налогов» обязательно для заполнения, если у поставщика проставлен статус «Иностранная организация», а у получателя статус «Покупатель»!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-30
// Поле 20. Регистрационный номер выпуска товаров доступно для заполнения, если поставщик –
// иностранная организация (субъект хозяйствования страны, не входящей в ЕАЭС или
// страна не указана), а получатель – субъект хозяйствования Республики Беларусь, а также,
// когда продавец – субъект хозяйствования страны, входящей в ЕАЭС (но не Беларусь),
// а грузоотправитель – плательщик из стран, не входящих в ЕАЭС.
//
Процедура ПроверкаЗаполненияПолейПравило30(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.ПолучательРегистрационныйНомерВыпускаТоваров) Тогда
ТипПоставщика = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Документ.Поставщик);
ТипПолучателя = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Документ.Получатель);
ТипГрузоотправитель = 1;
Для Каждого Строка Из Документ.Грузоотправитель Цикл
ТипГрузоотправитель = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Строка.Грузоотправитель);
Если ТипГрузоотправитель = 3 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
Если (Не ЗначениеЗаполнено(СтруктураДанных.КодСтраныПоставщика) ИЛИ ТипПоставщика = 3) И
(СтруктураДанных.КодСтраныПолучателя = "112" ИЛИ
СтруктураДанных.КодСтраныПолучателя <> "112" И ТипПолучателя = 2 И ТипГрузоотправитель = 3) Тогда
Иначе
ТекстОшибки = "Поле 20. Регистрационный номер выпуска товаров не доступно для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-31
// Поле 21.Реквизиты заявления о ввозе товаров и уплате косвенных налогов и
// 21.1. Дата ввоза товара доступно для заполнения, если поставщик –
// иностранная организация (субъект хозяйствования страны, входящей в ЕАЭС или
// страна не указана), а получатель – субъект хозяйствования Республики Беларусь,
// а также, когда продавец - субъект хозяйствования страны, не входящей в ЕАЭС,
// а грузоотправитель – субъект хозяйствования страны, входящей в ЕАЭС (не Беларусь).
//
Процедура ПроверкаЗаполненияПолейПравило31(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.ПолучательНомерЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПолучательДатаЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПолучательДатаВвозаТоваров) Тогда
ТипПоставщика = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Документ.Поставщик);
ТипПолучателя = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Документ.Получатель);
ГрузоотправительЕАЭС = Ложь;
Для Каждого Строка Из Документ.Грузоотправитель Цикл
ТипГрузоотправитель = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Строка.Грузоотправитель);
Если ТипГрузоотправитель = 3 Тогда
Прервать;
КонецЕсли;
КонецЦикла;
ГрузоотправительЕАЭС = Ложь;
Для Каждого Строка Из СтруктураДанных.Грузоотправитель Цикл
ТипГрузоотправителя = Документы.ЭлектронныйСчетФактура.ПолучитьТипКонтрагента(Документ.Грузоотправитель[СтруктураДанных.Грузоотправитель.Индекс(Строка)].Грузоотправитель);
Если Строка.КодСтраныГрузоотправитель <> "112" И ТипГрузоотправителя = 2 Тогда
ГрузоотправительЕАЭС = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если (Не ЗначениеЗаполнено(СтруктураДанных.КодСтраныПоставщика) ИЛИ ТипПоставщика = 2) И
(СтруктураДанных.КодСтраныПолучателя = "112" ИЛИ
ТипПолучателя = 3 И ГрузоотправительЕАЭС) Тогда
Иначе
ТекстОшибки = "Поле 21.Реквизиты заявления о ввозе товаров и уплате косвенных налогов и 21.1. Дата ввоза товара не доступно для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-32
// Если заполнено поле 21 (номер или дата), то поле 21.1 – обязательно для заполнения.
//
Процедура ПроверкаЗаполненияПолейПравило32(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если ЗначениеЗаполнено(СтруктураДанных.ПолучательНомерЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПолучательДатаЗаявленияОВвозеТоваров) Тогда
Если Не ЗначениеЗаполнено(СтруктураДанных.ПолучательДатаВвозаТоваров) Тогда
ТекстОшибки = "Если заполнено поле 21 (номер или дата), то поле 21.1 – обязательно для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-33
// Если пользователь указал ТТН-1 в разделе 30.«Условия поставки», то в разделах
// грузоотправитель и грузополучатель должен быть заполнены все поля
//
Процедура ПроверкаЗаполненияПолейПравило33(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
ЕстьТТН1 = Ложь;
Для Каждого Строка Из СтруктураДанных.ДокументыБСО Цикл
Если Строка.КодДокументаУсловияПоставкиБСО = "603" Тогда
ЕстьТТН1 = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЕстьТТН1 Тогда
Если СтруктураДанных.Грузоотправитель.Количество() > 0 И СтруктураДанных.Грузополучатель.Количество() > 0 Тогда
НеЗаполненыВсеПоля = Ложь;
Для Каждого Строка Из СтруктураДанных.Грузоотправитель Цикл
Если Не (ЗначениеЗаполнено(Строка.АдресГрузоотправитель) И ЗначениеЗаполнено(Строка.ИмяГрузоотправитель) И
ЗначениеЗаполнено(Строка.КодСтраныГрузоотправитель) И ЗначениеЗаполнено(Строка.УНПГрузоотправитель)) Тогда
НеЗаполненыВсеПоля = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Если Не НеЗаполненыВсеПоля Тогда
Для Каждого Строка Из СтруктураДанных.Грузополучатель Цикл
Если Не (ЗначениеЗаполнено(Строка.АдресГрузополучатель) И ЗначениеЗаполнено(Строка.ИмяГрузополучатель) И
ЗначениеЗаполнено(Строка.КодСтраныГрузополучатель) И ЗначениеЗаполнено(Строка.УНПГрузополучатель)) Тогда
НеЗаполненыВсеПоля = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если НеЗаполненыВсеПоля Тогда
ТекстОшибки = "В разделах грузоотправитель и грузополучатель должны быть заполнены все поля!";
Отказ = Истина;
КонецЕсли;
Иначе
ТекстОшибки = "В разделах грузоотправитель и грузополучатель должны быть заполнены все поля!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-34-удалено
// Если пользователь указал информацию в строках 14 «Реквизиты заявления о ввозе
// товаров и уплате косвенных налогов» или 21 «Реквизиты заявления о ввозе товаров и
// уплате косвенных налогов», то даты всех указанных документов, указанных в строке 30
// (условия поставки) должны совпадать.
//
Процедура ПроверкаЗаполненияПолейПравило34(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
//Правило-35
// Если пользователь указал грузоотправителя или грузополучателя (любой из реквизитов),
// то должны быть указан хотя бы один из документов «условия поставки» (вид документа, дата и номер).
//
Процедура ПроверкаЗаполненияПолейПравило35(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.Грузоотправитель.Количество() > 0 ИЛИ СтруктураДанных.Грузополучатель.Количество() > 0 Тогда
Если СтруктураДанных.ДокументыБСО.Количество() < 1 Тогда
ТекстОшибки = "Если пользователь указал грузоотправителя или грузополучателя (любой из реквизитов), то должны быть указан хотя бы один из документов «условия поставки» (вид документа, дата и номер)!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-36-удалено
// Если заполнены данные документа (тип, или номер, или дата), то данные (номер и
// дата) договора (контракта) обязательны для заполнения.
//
Процедура ПроверкаЗаполненияПолейПравило36(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
//Правило-37
// Если заполнен один из реквизитов документа: тип, или номер, или дата, то
// остальные (тип, номер и дата) – обязательны для заполнения
//
Процедура ПроверкаЗаполненияПолейПравило37(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из СтруктураДанных.ДокументыБСО Цикл
Если ЗначениеЗаполнено(Строка.КодДокументаУсловияПоставкиБСО) ИЛИ ЗначениеЗаполнено(Строка.НомерБСО) ИЛИ
ЗначениеЗаполнено(Строка.ДатаДокументаБСО) Тогда
Если Не (ЗначениеЗаполнено(Строка.КодДокументаУсловияПоставкиБСО) И ЗначениеЗаполнено(Строка.НомерБСО) И
ЗначениеЗаполнено(Строка.ДатаДокументаБСО)) Тогда
ТекстОшибки = "Поля 30. документы, подтверждающие поставку тип, номер и дата – обязательны для заполнения!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//Правило-38
// Если пользователь указал документ ТТН-1 или ТН-2 как документы, подтверждающие поставку товара,
// то поля вид документа, дата, код типа бланка, серия и номер – обязательны для заполнения
//
Процедура ПроверкаЗаполненияПолейПравило38(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из СтруктураДанных.ДокументыБСО Цикл
Если Строка.КодДокументаУсловияПоставкиБСО = "602" ИЛИ Строка.КодДокументаУсловияПоставкиБСО = "603" Тогда
Если Не (ЗначениеЗаполнено(Строка.ВидДокументаБСО) И ЗначениеЗаполнено(Строка.ДатаДокументаБСО) И
ЗначениеЗаполнено(Строка.КодТипаБланкаБСО) И ЗначениеЗаполнено(Строка.СерияБСО) И ЗначениеЗаполнено(Строка.НомерБСО)) Тогда
ТекстОшибки = "Поля 30. документы, подтверждающие поставку вид документа, дата, код типа бланка, серия и номер – обязательны для заполнения!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//Правило-39-удалено
// Если пользователь указал "В том числе сумма акциза", то поле «код ТН ВЭД ЕАЭС»
// – обязательно для заполнения для строки (10 цифр).
//
Процедура ПроверкаЗаполненияПолейПравило39(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
//Правило-40
// Поле 3.1. «ТН ВЭД ЕАЭС» и поле 3.2. «ОКЭД» являются взаимоисключающими друг друга.
// Т.е. если заполнено, например, поле 3.1, то поле 3.2 должно оставаться пустым.
//
Процедура ПроверкаЗаполненияПолейПравило40(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если ЗначениеЗаполнено(Строка.ТНВЭД) И ЗначениеЗаполнено(Строка.ОКЭД) Тогда
ТекстОшибки = "Поле 3.1. «ТН ВЭД ЕАЭС» и поле 3.2. «ОКЭД» являются взаимоисключающими друг друга!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//Правило-41
// Если указаны статусы поставщика-получателя "Иностранная организация"-"Покупатель",
// при этом, пользователь указывает ставку НДС 10% фиксированной ставки, то должен быть
// указан 10-значный код 3.1. «код ТН ВЭД ЕАЭС» из перечня кодов
// Указа Президента Республики Беларусь от 21 июня 2007 г.
// №287 "О налогообложении продовольственных товаров и товаров для детей".
//Правило-41.1
// Если статусы поставщика-получателя "Иностранная организация" – "Покупатель" и
// в товарной строке указана 8. "В том числе сумма акциза", то должен быть указан
// 10-значный код 3.1. «код ТН ВЭД ЕАЭС».
//Правило-41.2
// Если заполнены поля 13 "Регистрационный номер выпуска товаров" или
// 14 "Реквизиты заявления о ввозе товаров и уплате косвенных налогов",
// в товарной строке указана 8. "В том числе сумма акциза", то для этой товарной строки
// должен быть указан код 3.1. «код ТН ВЭД ЕАЭС» (10 цифр).
//Правило-41.3
// Если статусы поставщика-получателя "Иностранная организация" – "Покупатель",
// в товарной строке не указана 8. "В том числе сумма акциза", а также
// фиксированная ставка НДС не равна 10%, то должен быть указан
// код 3.1. «код ТН ВЭД ЕАЭС» (от 4 до 10 цифр).
//
Процедура ПроверкаЗаполненияПолейПравило41(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Иностранная организация и Покупатель
Если СтруктураДанных.СтатусПоставщика = "FOREIGN_ORGANIZATION" И СтруктураДанных.СтатусПолучателя = "CUSTOMER" Тогда
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
//41
Если Строка.СтавкаНДС = "10" И Не ЗначениеЗаполнено(Строка.ТНВЭД) Тогда
ТекстОшибки = "Для товарной строки должен быть указан код 3.1. «код ТН ВЭД ЕАЭС» (10 цифр)!";
Отказ = Истина;
Прервать;
//41.1
ИначеЕсли ЗначениеЗаполнено(Строка.Акциз) И Не ЗначениеЗаполнено(Строка.ТНВЭД) Тогда
ТекстОшибки = "Для товарной строки должен быть указан код 3.1. «код ТН ВЭД ЕАЭС» (10 цифр)!";
Отказ = Истина;
Прервать;
//41.3
ИначеЕсли Не ЗначениеЗаполнено(Строка.Акциз) И Строка.СтавкаНДС <> "10" И Не ЗначениеЗаполнено(Строка.ТНВЭД) Тогда
ТекстОшибки = "Для товарной строки должен быть указан код 3.1. «код ТН ВЭД ЕАЭС» (10 цифр)!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
//41.2
Если ЗначениеЗаполнено(СтруктураДанных.ПоставщикРегистрационныйНомерВыпускаТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПоставщикНомерЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаЗаявленияОВвозеТоваров) Тогда
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если ЗначениеЗаполнено(Строка.Акциз) И Не ЗначениеЗаполнено(Строка.ТНВЭД) Тогда
ТекстОшибки = "Для товарной строки должен быть указан код 3.1. «код ТН ВЭД ЕАЭС» (10 цифр)!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
//Правило-42-удалено
// Если указана ставка НДС 10% и «код ТН ВЭД ЕАЭС», то «код ТН ВЭД ЕАЭС»
// должен быть в перечне кодов Указа Президента Республики Беларусь от 21 июня 2007 г.
// №287 "О налогообложении продовольственных товаров и товаров для детей".
//
Процедура ПроверкаЗаполненияПолейПравило42(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
//Правило-43-удалено
// Если заполнены поля 13 или 14 и в атрибуте sender указан УНП поставщика (т.е.
// отправитель является поставщиком в данном ЭСЧФ), то для данной ЭСЧФ для всех
// товарных позиций должен быть указан ТН ВЭД ЕАЭС» (от 4 до 10 цифр).
//
Процедура ПроверкаЗаполненияПолейПравило43(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
//Правило-44
// Если заполнены поля 13."Регистрационный номер выпуска товаров" или
// 14 "Реквизиты заявления о ввозе товаров и уплате косвенных налогов"
// и статусы поставщика – получателя соответственно равны «продавец» – «покупатель»,
// «посредник» – «потребитель», «заказчик (застройщик)» – «потребитель»,
// то для данного ЭСЧФ для всех товарных позиций должен быть указан «ТН ВЭД ЕАЭС» (от 4 до 10 цифр).
//
Процедура ПроверкаЗаполненияПолейПравило44(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Продавец и Покупатель / Посредник и Потребитель / Заказчик (застройщик) и Потребитель
Если (ЗначениеЗаполнено(СтруктураДанных.ПоставщикРегистрационныйНомерВыпускаТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПоставщикНомерЗаявленияОВвозеТоваров) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.ПоставщикДатаЗаявленияОВвозеТоваров)) И
(СтруктураДанных.СтатусПоставщика = "SELLER" И СтруктураДанных.СтатусПолучателя = "CUSTOMER" ИЛИ
СтруктураДанных.СтатусПоставщика = "AGENT" И СтруктураДанных.СтатусПолучателя = "CONSUMER" ИЛИ
СтруктураДанных.СтатусПоставщика = "DEVELOPER" И СтруктураДанных.СтатусПолучателя = "CONSUMER") Тогда
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если Не (ЗначениеЗаполнено(Строка.ТНВЭД) ИЛИ ЗначениеЗаполнено(Строка.ОКЭД)) Тогда
ТекстОшибки = "Для всех товарных позиций должен быть указан «ТН ВЭД ЕАЭС» (от 4 до 10 цифр)!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
//Правило-45-удалено
// Если заполнены поля 20 или 21 и статусы поставщика – получателя соответственно
// равны «иностранная организация» - «покупатель», то для данной ЭСЧФ для всех товарных
// позиций должен быть указан ТН ВЭД ЕАЭС» (от 4 до 10 цифр).
//
Процедура ПроверкаЗаполненияПолейПравило45(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
//Правило-46
// 6. Цена (тариф) за единицу товара (работы, услуги) имущественных прав без учета НДС
// в Разделе 12 не должна быть отрицательной.
//
Процедура ПроверкаЗаполненияПолейПравило46(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если Строка.Цена < 0 Тогда
ТекстОшибки = "6. Цена (тариф) за единицу товара (работы, услуги) имущественных прав без учета НДС в Разделе 12 не должна быть отрицательной!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//Правило-47
// В разделе 6, в поле 10. «НДС сумма» и в поле 8. «В том числе сумма акциза» числа
// должны быть одного знака (если они есть).
// Например, если НДС сумма по данной позиции положительная, то и сумма акцизы
// должна быть положительной.
//
Процедура ПроверкаЗаполненияПолейПравило47(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
СуммаНДС = Строка.СуммаНДС;
СуммаАкциз = Строка.Акциз;
Если ЗначениеЗаполнено(СуммаНДС) И ЗначениеЗаполнено(СуммаАкциз) Тогда
Если СуммаНДС > 0 И СуммаАкциз < 0 ИЛИ СуммаНДС < 0 И СуммаАкциз > 0 Тогда
ТекстОшибки = "В разделе 6, в поле 10. «НДС сумма» и в поле 8. «В том числе сумма акциза» числа должны быть одного знака (если они есть)!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//Правило-48
// Если пользователь указал ставку НДС 0% или "без НДС", то в поле "НДС сумма" должен прописываться 0.
//
Процедура ПроверкаЗаполненияПолейПравило48(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если Строка.ТипСтавки = "ZERO" ИЛИ Строка.ТипСтавки = "NO_VAT" Тогда
Если Строка.СуммаНДС <> 0 Тогда
ТекстОшибки = "Если пользователь указал ставку НДС ""0"" или ""без НДС"", то в поле ""НДС сумма"" должен прописываться 0!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//Правило-49
// Общая сумма всех НДС перевыставляемых не должна превышать суммы входящего НДС,
// на который он ссылается в пунктах 11. «Номер ЭСЧФ комитента» или
// продавца 12. «Номер ЭСЧФ продавца»
// Иначе, ЭСЧФ будет отклонен
//
// ЭСЧФ, указанный в поле 11 или 12, должен обладать следующими показателями:
// 1. Тип должен быть исходный, исправленный или дополнительный без ссылки на ЭСЧФ;
// 2. Статус (в том числе его дополнительных) должен быть "Выставлен. Подписан получателем"
// или "Выставлен. Начато аннулирование";
// 3. Перевыставляемыми суммами НДС считаются только значения из граф "Сумма НДС" строк,
// для которых применен признак "Не подлежит вычету" (в текущем ЭСЧФ и всех дополнительных к нему).
//
// ЭСЧФ, который ссылается в 11 или 12 поле, должен обладать следующими показателями:
// 1. Тип должен быть исходный, исправленный или дополнительный без ссылки на ЭСЧФ;
// 2. Статус (в том числе его дополнительных) должен быть "Выставлен", "Выставлен.Подписан получателем"
// или "Выставлен.Начато аннулирование";
// 3. Перевыставляемыми суммами НДС считаются только значения из граф "Всего по счету Сумма НДС" для всех ЭСЧФ,
// которые ссылаются на одну и тоже ЭСЧФ, и их дополнительных.
//
// Таким образом, система отклоняет выставление ЭСЧФ в следующих случаях:
// 1. Когда перевыставляемая сумма НДС из ЭСЧФ (или его дополнительного), который
// ссылается в 11 или 12 поле, в случае выставления, будет превышать
// Перевыставляемую сумму НДС из ЭСЧФ, указанного в поле 11 или 12;
// 2. Когда к ЭСЧФ, указанному в поле 11 или 12, составляется (подается) дополнительный ЭСЧФ
// с минусовыми показателями, которые в случае выставления этого ЭСЧФ, вызовет превышение
// уже перевыставленной суммы НДС над входящим с учетом дополнительных.
// 3. Когда у ЭСЧФ, указанному в поле 11 или 12, получатель попытается поменять
// признак "Не подлежит вычету" примененный к строкам, что вызовет превышение
// уже перевыставленной суммы НДС над входящим с учетом дополнительных.
//
Процедура ПроверкаЗаполненияПолейПравило49(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Ждем пока доработаю правило и компоненту, на текущий момент не реализуемо через 1С!
//11
Если ЗначениеЗаполнено(СтруктураДанных.НомерСчетаКомитента) Тогда
ТекстОшибки = "Правило 49 в разработке!";
Отказ = Истина;
//Если Документ.НомерСчетаКомитента.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исходный ИЛИ
// Документ.НомерСчетаКомитента.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исправленный ИЛИ
// Документ.НомерСчетаКомитента.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.ДополнительныйБезСсылки Тогда
//
// //Статус (в том числе его дополнительных) должен быть "Выставлен. Подписан получателем" или "Выставлен. Начато аннулирование"
// Если Не Документ.НомерСчетаКомитента.СтатусАннулирован Тогда
//
// Иначе
//
// ТекстОшибки = "В поле 11 статус (в том числе его дополнительных) должен быть ""Выставлен. Подписан получателем"" или ""Выставлен. Начато аннулирование""!";
// Отказ = Истина;
//
// КонецЕсли;
//
//Иначе
//
// ТекстОшибки = "В поле 11 тип должен быть исходный, исправленный или дополнительный без ссылки на ЭСЧФ!";
// Отказ = Истина;
//
//КонецЕсли;
//12
ИначеЕсли ЗначениеЗаполнено(СтруктураДанных.НомерСчетаПродавца) Тогда
ТекстОшибки = "Правило 49 в разработке!";
Отказ = Истина;
//Если Документ.НомерСчетаПродавца.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исходный ИЛИ
// Документ.НомерСчетаПродавца.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исправленный ИЛИ
// Документ.НомерСчетаПродавца.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.ДополнительныйБезСсылки Тогда
//
// //Статус (в том числе его дополнительных) должен быть "Выставлен. Подписан получателем" или "Выставлен. Начато аннулирование"
// Если Не Документ.НомерСчетаКомитента.СтатусАннулирован Тогда
//
// Иначе
//
// ТекстОшибки = "В поле 12 статус (в том числе его дополнительных) должен быть ""Выставлен. Подписан получателем"" или ""Выставлен. Начато аннулирование""!";
// Отказ = Истина;
//
// КонецЕсли;
//
//Иначе
//
// ТекстОшибки = "В поле 12 тип должен быть исходный, исправленный или дополнительный без ссылки на ЭСЧФ!";
// Отказ = Истина;
//
//КонецЕсли;
КонецЕсли;
КонецПроцедуры
//Правило-50
// Сумма, указанная в графе 8. «В том числе сумма акциза» должна быть не больше
// суммы, указанной в графе 7. «Стоимость товаров» (по модулю).
//
Процедура ПроверкаЗаполненияПолейПравило50(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если Строка.Сумма >= 0 Тогда
Если Строка.Акциз < 0 ИЛИ Строка.Сумма < Строка.Акциз Тогда
ТекстОшибки = "Сумма, указанная в графе 8. «В том числе сумма акциза» должна быть не больше суммы, указанной в графе 7. «Стоимость товаров» (по модулю)!";
Отказ = Истина;
Прервать;
КонецЕсли;
Иначе
Если Строка.Акциз > 0 ИЛИ Строка.Сумма > Строка.Акциз Тогда
ТекстОшибки = "Сумма, указанная в графе 8. «В том числе сумма акциза» должна быть не больше суммы, указанной в графе 7. «Стоимость товаров» (по модулю)!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
//Правило-51-удалено
// Если заполнены поля 20. «Регистрационный номер выпуска товаров» или 21.
// «Реквизиты заявления о ввозе товаров и уплате косвенных налогов», то в шестом разделе
// для всех строк товара в графе 12 (дополнительные данные) должен быть указан "Ввозной НДС".
//
Процедура ПроверкаЗаполненияПолейПравило51(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
КонецПроцедуры
//Правило-52
// Если пользователь указал статус поставщика – "иностранная организация", а статус
// получателя – "Покупатель", то в разделе 6, графе 12 должен быть указан "Ввозной НДС"
// – для всех товарных позиций
//
Процедура ПроверкаЗаполненияПолейПравило52(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Иностранная организация и Покупатель
Если СтруктураДанных.СтатусПоставщика = "FOREIGN_ORGANIZATION" И СтруктураДанных.СтатусПолучателя = "CUSTOMER" Тогда
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Если Не Строка.ДополнительныеДанные = "IMPORT_VAT" Тогда
ТекстОшибки = "В разделе 6, графе 12 должен быть указан ""Ввозной НДС"" – для всех товарных позиций!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
В предыдущий пост влезло только 52 правила, остальное ниже:
#Область ПроверкаЗаполненияПолейПосле52
//Правило-53
// Если в ЭСЧФ указан любой статус поставщика, кроме "Иностранная организация",
// и для товарной строки указана ставка НДС "Без НДС", то для этой строки в графе 12
// должен быть указан один из признаков: «Вычет в полном объеме»,
// «Освобождение от НДС» или «Реализация за пределами РБ».
//Правило-53.1
// Если в ЭСЧФ указан статус поставщика "Иностранная организация" и для товарной
// строки указана ставка НДС "Без НДС", то для этой строки в графе 12 должен быть указан
// признак «Освобождение от НДС».
//
Процедура ПроверкаЗаполненияПолейПравило53(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//53.1 Иностранная организация
Если СтруктураДанных.СтатусПоставщика = "FOREIGN_ORGANIZATION" Тогда
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
//Без НДС и Освобождение от НДС
Если Строка.ТипСтавки = "NO_VAT" И Строка.ДополнительныеДанные <> "VAT_EXEMPTION" Тогда
ТекстОшибки = "В графе 12 должен быть указан признак «Освобождение от НДС»!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
//Без НДС и Вычет в полном объеме или Освобождение от НДС или Реализация за пределами РБ
Если Строка.ТипСтавки = "NO_VAT" И (Строка.ДополнительныеДанные <> "DEDUCTION_IN_FULL" ИЛИ
Строка.ДополнительныеДанные <> "VAT_EXEMPTION" ИЛИ Строка.ДополнительныеДанные <> "OUTSIDE_RB") Тогда
ТекстОшибки = "В графе 12 должен быть указан один из признаков: «Вычет в полном объеме», «Освобождение от НДС» или «Реализация за пределами РБ»!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
//Правило-54
// Количество товара, суммы и стоимости, указанные в 6 разделе Исходного или
// Исправленного ЭСЧФ, не должны быть отрицательными.
//
Процедура ПроверкаЗаполненияПолейПравило54(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исходный ИЛИ
СтруктураДанных.ТипЭСЧФ = Перечисления.КодыТиповСчетовФактур_Локализация.Исправленный Тогда
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
Количество = Строка.Количество;
Сумма = Строка.Сумма;
Всего = Строка.Всего;
Если Количество < 0 ИЛИ Сумма < 0 ИЛИ Всего < 0 Тогда
ТекстОшибки = "Количество товара, суммы и стоимости, указанные в 6 разделе Исходного или Исправленного ЭСЧФ, не должны быть отрицательными!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
//Правило-55
// Значения столбцов "Стоимость товаров, работ, услуг, имущественных прав без НДС",
// "В том числе сумма акциза", "НДС сумма", "Стоимость товаров, работ, услуг,
// имущественных прав с учетом НДС" строки «Всего по счету» должны соответствовать
// сумме значений соответствующих столбцов по всем товарным строкам.
//
Процедура ПроверкаЗаполненияПолейПравило55(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.ТаблицаДанных.Итог("Акциз") <> СтруктураДанных.СуммаАкциза ИЛИ
СтруктураДанных.ТаблицаДанных.Итог("Всего") <> СтруктураДанных.СуммаДокумента ИЛИ
СтруктураДанных.ТаблицаДанных.Итог("Сумма") <> СтруктураДанных.СуммаДокументаБезНДС ИЛИ
СтруктураДанных.ТаблицаДанных.Итог("СуммаНДС") <> СтруктураДанных.СуммаДокументаНДС Тогда
ТекстОшибки = "Значения столбцов ""Стоимость товаров, работ, услуг, имущественных прав без НДС"", ""В том числе сумма акциза"", ""НДС сумма"", ""Стоимость товаров, работ, услуг, имущественных прав с учетом НДС"" строки «Всего по счету» должны соответствовать сумме значений соответствующих столбцов по всем товарным строкам!";
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
//Правило-56
// Получатель может подписать исправленный со статусом "На согласовании" только тогда,
// когда в БД нет неаннулированных ЭСЧФ, в которых в 11 или 12 поле указан номер из 5
// поля данного исправленного ЭСЧФ со статусом "На согласовании"
//
Процедура ПроверкаЗаполненияПолейПравило56(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Проверка возможна только на портале
КонецПроцедуры
//Правило-57
// Получатель не может дать согласие на аннулирование ЭСЧФ, если к данному ЭСЧФ
// есть исправленный "на согласовании". При подписании получателем исправленного ЭСЧФ,
// исходный ЭСЧФ должен быть аннулирован автоматически.
//
Процедура ПроверкаЗаполненияПолейПравило57(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Проверка возможна только на портале
КонецПроцедуры
//Правило-58
// При перевыставлении позволять ссылаться на ЭСЧФ продавца, когда составитель
// текущего ЭСЧФ и ЭСЧФ продавца - с/х с одним и тем же УНП. Данный УНП в ЭСЧФ продавца
// должен быть получателем со статусом «Покупатель объектов у иностранной организации».
//
Процедура ПроверкаЗаполненияПолейПравило58(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//Ждем пока доработаю правило и компоненту, на текущий момент не реализуемо через 1С!
Если ЗначениеЗаполнено(СтруктураДанных.НомерСчетаКомитента) ИЛИ
ЗначениеЗаполнено(СтруктураДанных.НомерСчетаПродавца) Тогда
ТекстОшибки = "Правило 50 в разработке!";
Отказ = Истина;
КонецЕсли;
КонецПроцедуры
//Правило-59
// Если заполнен реквизит 6.1 Взаимозависимое лицо и реквизит 16. Код страны получателя - РБ,
// то реквизит 17. УНП получателя обязательно для заполнения
//
Процедура ПроверкаЗаполненияПолейПравило59(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
Если СтруктураДанных.ПоставщикПризнакВзаимозависимогоЛица И СтруктураДанных.КодСтраныПолучателя = "112" Тогда
Если Не ЗначениеЗаполнено(СтруктураДанных.УНППолучателя) Тогда
ТекстОшибки = "Реквизит 17. УНП получателя обязателен для заполнения!";
Отказ = Истина;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
Показать
Структура данных это отформатированный ХМЛ в виде структуры в типах 1С, а Документ это ссылка на ЭСЧФ в базе.
Что делать, если вам отправили не тот код единицы измерения!
В входящей ЭСЧФ есть тег <units>6</units>
В классификаторе на портале есть запись: 006 Метр М
У нас в базе код это строка 3 символа.
А вот в схеме ограничений нет и это число:
<xs:element name="units" type="xs:integer" minOccurs="0"/>
Также в классификаторе на сайте обнаружил коды из 4 символом.
Как правильно соединять эти данные?
Потому что у нас в базе есть строка-код «006»!
Т.е. проблема в том что пришло не строка «006», а «6», которое по факту число в схеме.
Ответ ТП:
Код для единиц измерений полностью должен соответствовать классификатору. Т.е если Вы задаете единицу измерения метр, то код должен быть не 6,а 006 и т.д
Дополнительный вопрос:
Это я понимаю и поэтому не понимаю, почему там прислали ЭСЧФ с тегом:
<units>6</units>
В таком случае требуется сообщить контрагенту, чтобы он присылал тег:
<units>006</units>
Все верно?
Дополнительный ответ:
Да, верно.
Пояснительный вопрос:
Есть еще дополнительный вопрос!
Почему в таком случае: <units>6</units>
Отображается на портале как метр? Если метр это «006»?
Пояснительный ответ:
Да, на текущий момент оба варианта рабочих, можно задавать как 6 так и 006. Но рекомендуем использовать коды из классификатора.
(5511) судя по ответам разарабов на вопрос, что делать, если вам не правильно выставили эсчф или с ошибкой: "скажите поставщику, а мы что, мы ниче, мы не виноваты, не наш косяк"
С этим случаем разберемся, но бывают еще ситуации, когда отправляют всякий мусор:
«000» или код, которого нет в классификаторе, что в таких ситуациях делать?
Будет ли дополнительное правило для единиц измерения, чтобы шлак не попадал на портал?
Ответ:
К сожалению, мы не можем контролировать информацию которую заполняют организации в ЭЧСФ.
Единицы измерения не является критичным элементом, в отличие, к примеру, от типа сопроводительного документа. Правило скорее всего дорабатываться не будет. При задании кода 000, единицы измерения не заполнятся.
(5513) единица измерения не обязательный реквизит, на вычет НДС никак не влияет.
Ну и что мешает использовать Формат(ЕДИНИЦАИЗМЕРЕНИЯИЗЭСЧФ, "Ч(0)3") для получения из числа 6 строку "006"?
(5515) зачем доносить что-то до программистов? Вы получили ЭСЧФ с "6". Если Вам это супер-мега-важно, преобразуйте его в "006" для своего буха. В чем именно необходимость доставать поставщика? Необязательным полем. :)
(5520) знаете, наименование и адрес юр лица тоже не проверяется с УНП, нам так и выставили хз абы как. Получается, нам тоже глаза на это закрыть и поставить на постоянку все свое? Простите, но может вы из числа разработчиков?
(5521) по поводу наименования и юр. адреса тети из МНС порекомендовали сделать так, чтобы данные о контрагентах брались из ЕГР (кто-то тут выкладывал же обработку). И да - если прилетело не то - "звоните поставщикам" их ответ был. В любом случае, от бардака в учетных системах никак себя не застрахуешь, человеческий фактор никто не отменял. Еще в мае насчет юр.адреса в МНС отвечали, что это не важно и бывает, что и в ЕГР его нет или он не верный.
(5520) вы сообщение перечитайте, они как раз это сделали для совместимости, но их рекомендация: делать тег с нулями "006"!
Потому что так по стандарту!
(5518) они же написали, туда можно писать любой парожняк. Но фишка в том что на портале они оставили возможность видеть метр когда и "6" и "006". А вот если бы был метр только когда "006" это другой разговор был бы.
(5516) написать код не проблема, просто есть стандарт, а если не по стандарту, то исправьте раз не соблюдаете.
(5519) Стандарт стандартом, но иногда проще у себя исправить. И быстрее и нервы целей будут :) Вообще-то по "стандарту" допускается вообще группировать позиции и в этом случае о единице измерения вообще речи может не идти ...
5526.
user599431_pvv911
07.12.16 23:53 Сейчас в теме
Возникла интересная ситуация, кто сталкивался
Выгружаю из 7.7 на портал
Ошибка при проверке XML: Class not registered, ClassID: {88D96A07-F192-11D4-A65F-0040963251E5} Документ ХХХ не соответствует требуемой схеме xsd
Причем руками он грузится, сверяю потом выгруженное с портала - нет отличий. Только дата транзакции да разрядность (копейки .00, .0000)
Схемы свежие (у других работают такие же), элнват свежий
(5526) вот и уберите дату транзакции, делайте без нее. И еще, после загрузки на портал, проверьте статус данного ЭСЧФ, он вернет ваш ошибку, что не так в вашем файле
свойство «since» класса «StatusInfo» возвращает дату выставления ЭСЧФ.
Можно ли каким либо образом получать дату подписания вх.ЭСЧФ. или попросту дату присвоения статуса "Выставлен.Подписан получателем" - да/нет??
Кто как получает дату подписания??
(5533) вот только написал обработку чтобы выдавало кол-во подписей и дату подписи.
в итоге, выдаёт только что есть 1 подпись от такой-то даты(это соответствует дате подписания и выставления). Хотя на портале дата подписи(с нашей стороны - получателя) имеется(если глядеть монитор сделок). и вот как быть?
(5535) так мы ведь обращаемся к эсчф по номеру: InvVatXml = EVatService.GetEDoc(НомерЭСЧФ) и уже с ней работаем: signCount = InvVatXml.GetSignCount;... и никак не взаимодействуем с теми файлами что скачали до этого.
или всё не так? может я не понимаю чего-то, расскажите
(5531) Со входящими провел эксперимент заново. Скачал через GetEDoc ЭСЧФ подписанную с двух сторон и сохранил на диске. И там оказалась только одна подпись - того кто выставлял. А нашей подписи не было.
Скачал вручную xml c ЭЦП, там было уже две подписи, но формат был не совместимый с GetEDoc. Поэтому когда я в предыдущем эксперименте загружал этот файл, то переход был на пустое исключение, а затем функция ПроверкаПодписей выдавала дату, которую поставил в заглушку, а как я еще функцией возвращал эту дату, то дат оказалось две, одинаковые и не имеющие ни какого отношения к подписи документа.
ВЫВОД: На сегодняшний день не возможно через EVatService получить данные по второй подписи (подписи получателя) для входящих ЭСЧФ, а только данные подписи отправителя. Считаю, что это неправильно: организация должна получать всю информацию о выставленных ей ЭСЧФ, даже ту которую вносили ее сотрудники.
Извините, если кого предыдущим постом (5535) ввел в заблуждение.
(5539) а вот что мне ответила ТП: Вы сами подписываете этот документ, у Вас есть документ со второй подписью, дату подписания Вы можете брать либо из этого документа, либо получать дату в момент подписания в Вашей учётной системе.
плюс, я так понял, в примере приложения которое они так любезно предоставляют, алгоритм такой:
берут *.sng.xml -> подписывают его -> потом сохраняют файл с двумя подписями(...InvVatXml.SaveToFile( ** + ".sgn2.xml")
) -> идёт приём квитанций об успехе или нет...
и если понимать ТП, то дату подписания берём из файла "*.sgn2.xml"
5547.
user594279_it.agroservis6
09.12.16 11:39 Сейчас в теме
(5541) Тоже поинтересовался этим вопросом в службе ТП:
... На портале хранится входящая ЭСЧФ с двумя подписями и чтобы вернуть ее через GetEDoc не составит большого труда.
Тем более что класс EDocument уже готов работать с двумя подписями.
В Клиентское ПО ЭСЧФ НДС.Руководство программиста на странице 8 описан формат e-document как имеющий несколько подписей.
Вот и встает вопрос, почему это тогда не реализовано ?
Ответ ТП:
Данный функционал на текущий момент дорабатывается, в ближайшее время он будет доступен на тестовом портале. После этого перенес на основной.
Поправил 53 правило, не верно условие в конце написал:
//Правило-53
// Если в ЭСЧФ указан любой статус поставщика, кроме "Иностранная организация",
// и для товарной строки указана ставка НДС "Без НДС", то для этой строки в графе 12
// должен быть указан один из признаков: «Вычет в полном объеме»,
// «Освобождение от НДС» или «Реализация за пределами РБ».
//Правило-53.1
// Если в ЭСЧФ указан статус поставщика "Иностранная организация" и для товарной
// строки указана ставка НДС "Без НДС", то для этой строки в графе 12 должен быть указан
// признак «Освобождение от НДС».
//
Процедура ПроверкаЗаполненияПолейПравило53(СтруктураДанных, Документ, ТекстОшибки, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
//53.1 Иностранная организация
Если СтруктураДанных.СтатусПоставщика = "FOREIGN_ORGANIZATION" Тогда
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
//Без НДС и Освобождение от НДС
Если Строка.ТипСтавки = "NO_VAT" И Строка.ДополнительныеДанные <> "VAT_EXEMPTION" Тогда
ТекстОшибки = "В графе 12 должен быть указан признак «Освобождение от НДС»!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
Для Каждого Строка Из СтруктураДанных.ТаблицаДанных Цикл
//Без НДС и не Вычет в полном объеме или Освобождение от НДС или Реализация за пределами РБ
Если Строка.ТипСтавки = "NO_VAT" И Не (Строка.ДополнительныеДанные = "DEDUCTION_IN_FULL" ИЛИ
Строка.ДополнительныеДанные = "VAT_EXEMPTION" ИЛИ Строка.ДополнительныеДанные = "OUTSIDE_RB") Тогда
ТекстОшибки = "В графе 12 должен быть указан один из признаков: «Вычет в полном объеме», «Освобождение от НДС» или «Реализация за пределами РБ»!";
Отказ = Истина;
Прервать;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Всё ребята, амнистия). Ответ ТП: Сейчас идут обновления, связанные как раз со статусами, и метод Since будет отдавать дату установки статуса "выставлен" для отправленного, или дату установки статуса "подписан получателем" после работы со входящими.
P.S. Как получать дату подписи из "*.sgn2.xml" так и не вышло.
(5542) Опять как всегда что-то поменяют и скажут по факту. А то что у кого-то на предыдущую схему логика работы ПО была заточена - не их проблемы ) Хоть бы как-то в новостях будущие изменения анонсировали за пару-тройку дней ...
Пожалуйста подскажите, как получить дату входящего ЭСЧФ, если в xml не задано поле dateIssuance. Это нужно, чтобы заполнить поля при перевыставляемого ЭСЧФ
(5550) Дата подписи Счета фактуры и дата самого счета фактуры это разные даты, Дата выставления ЭСЧФ скорее всего равна Дате счета фактуры. И то может быть вариант, когда в самом файле xml заполнено поле dateIssuance например 2016-12-08, так как в учетной системе выставляющего ЭСЧФ этот счет сформировался восьмого числа, а по каким то причинам связь с порталом была девятого числа и соответственно дата выставления ЭСЧФ будет 2016-12-09, потому что портал сам ставит дату выставления по факту.
Вышла из положения свойством Since, при проверке статусов InvVatStatus.Since заполняю Дату ЭСЧФ, если она не заполнена. А (5530) это не мой случай, так как там говорится про Дату подписи ЭСЧФ.
ЭСЧФ сохраняется, но перед номером ставит 58 пробелов (почему не 60 или 57?). Открыть и пропарсить файл невозможно - 1с крошытся. Переименовать файл даже вручную нельзя, пишет "имена исходного и конечного файла совпадают". Однако, если я перемещу этот файл в другую папку - пробелы сами исчезают, файл нормально открывается и парсится. Кто-нибудь наведет на мысль?
Возник вопрос, как отслеживать накладные/акты, в которых ставка НДС = "Без НДС".
В смысле как отслеживать?
Если ты про, визуальное отслеживание то просто выделяй строки где сумма НДС документа равна нулю.
Или ты про те накладные где вместе с товаром со ставками НДС 10,20 и т.д есть позиции со ставкой Без НДС?
(5565) у меня в публикации есть файл для загрузки с помощью универсального обмена XML. Там все коды ОКЭД с портала, а так же ТН ВЭД, и, если нужно (и есть такие справочники), данные по видам документов, а так же бланкам печатной продукции
Добрый день. Хочу прояснить ряд вопросов:
Ситуация 1: на портале есть 5 вх.ЭСЧФ(не подписанные). Значит получаю список, загружаю - 3 в 1с есть, остальные даже файлы не скачались. причем ошибок не выдавало.
как такую ситуацию пояснить, может кто сталкивался?
2: У одного клиента есть проблема с получением ГетЛист - получаем гетЛист на 1-е ..3..4... всё гуд всё грузит, допутим, пару дней не грузили ставим сново 1-е(ну мало ли что-то не пришло) или 4-е(с даты последней загрузки) - и всё на *.GetList(Дата) 1с-ка вылетает. а если задать дату числом 7-8 то дальше все работает. а за 4-8 так ничего и не можем получить.
что за?
Сегодня сам обнаружил, что мы не можем выставить правильно код!
Вместо строки «006» выходит число «6».
Потому что в схеме жестко прописано число:
xs:element name="units" type="xs:integer" minOccurs="0"
Также другие элементы тоже проблемные:
xs:element name="code_oced" type="xs:integer" minOccurs="0"
xs:element name="countryCode" type="xs:integer" minOccurs="0"
Ответили:
Изменений в схеме пока не планируется. Данный вопрос будем рассматривать.
Можете использовать код 6 без нулей.
Такая хрень была с ОКЭД, ранее я об этом писал, потом исправили но только на стороне портала, для того что бы формировало корректно номер 006 нужно напрямую в схемах поменять тип переменной с "integer" на "string"
Может появится проблема только на стороне портала с кодом "006", если они там не уберут преобразование к типу число то этот код все равно примет вид "6"