Ошибка глобального модуля "ОписаниеВычета" и "СуммаПоВычету" в релизах бух. 7.7 (ОСН - 614,615 и УСН-259,260) Ошибка приводит ошибке заполнения сведений по сотруднику в обработках: КорректировкаДанныхПоНДФЛ, РегистрНалоговогоУчетаПоНДФЛ, СправкаПоНДФЛ, возможно и в других, - по 2015,2016г.г. Для исправления нужно отследить строки в глобальном модуле: КодЭлемента = ""; // код элемента справочника ВидыВычетов ОписаниеВычета=СписокКодовВычетовСотра.ПолучитьЗначение(СчВычетов,КодЭлемента); ВидВычета = ОписаниеВычета.ПолучитьЗначение(7); КодВычета = ВидВычета.КодДляОтчетности2015; СуммаПоВычету = СуммыВычетов.Получить(КодЭлемента); и заменить, где нужно, на соответствующие: КодЭлемента = ""; // код элемента справочника ВидыВычетов ОписаниеВычета=СписокКодовВычетовСотра.ПолучитьЗначение(СчВычетов,КодЭлемента); Если ТипЗначенияСтр(ОписаниеВычета) = "СписокЗначений" Тогда ВидВычета = ОписаниеВычета.ПолучитьЗначение(7); Иначе ВидВычета = ОписаниеВычета; КонецЕсли; КодВычета = ВидВычета.КодДляОтчетности2015; СуммаПоВычету = Число(СуммыВычетов.Получить(КодВычета)); P.s. Разработчик, писавший код, использовал одноименную переменную "ОписаниеВычета", то как "СписокЗначений", то как простую переменную, в результате заблудился, в каком месте, какой вид переменной используется. Я обошел такие места по условию - если "СписокЗначений", тогда, иначе - конец если. Ну и некорректно использовалась переменная "КодЭлемента", вместо "КодВычета" по контексту. - Кому нужно - обратите внимание... :-) |
"[filolog]Пидарасы[/filolog], сэр!" |
0-perpetum > Ты думаешь сейчас, что чем-то нас удивил? Всем давно известно, что в 1С работают на аутсорсе таджики и молдаване полуграмотные... И пишут индийский код... |
Более того, в УЦ3 постоянно рефреном проходит: Вот так писать нельзя. Так пишут только в фирме 1С. Именно так написаны все типовые конфигурации от 1С. Если я у вас увижу вот такой программный код на экзамене - сразу двойка без пересдачи. Идите, устраивайтесь на работу в 1С. Никуда более вас не примут. |
(0)да редко кто з/п в бухии считает... но все-равно спасибо:) |
0-perpetum > Вот прямо с языка сняла.. Я сейчас нацелился спикировать на эту ветку с вопросом, какого буя вы ЗП считаете в бухгалтерии!!!??? Пришлось ложно отбомбиться всем своим говном мимо (на больницу и хлебозавод большой в Сирии). |
Да и в ЗиК код иногда вызывает странные чувства. Вот смотрю я на нынешний Процедура ИзмФлагКрым() ПостоянноПроживалВКрыму18Марта2014Года = ФлПроживалКрым; КонецПроцедуры и так вот смотрю - и вроде по форме всё правильно, и не придраться- ведь работает же. А по сути... Если прог не знает как сделать реквизит "ПостоянноПроживалВКрыму18Марта2014Года" справочника "Сотрудники" флажком на форме, то это как-то серьёзно озадачивает. Может индусы программируют? |
Код, код... Да редька с ним. Намедни ко мне одна бушка порыдала: Книга Покупок не формируется. С Продажами - все ОК, с Покупками - жопа. С 2016 года, что характерно. Ну, релиз обновил, но терзали смутные сомнения: в ридми никаких указаний, что что-то менялось... Копнул. Выяснил: все дело в реквизите ДатаНомерСчетаФактуры. Использовался он как комментатор, по сути, и приучил бушек к небрежности. А с 2016 года он стал реквизитом [u]двух[/u] элементов выгрузки: НомерСчетаФактуры и ДатаСчетаФактуры. Мне и раньше нервировало, что для заполнения этого поля (составного!) разработчики никакого шаблона не смастрячили, отдали на фантазию бушкам. Они и рады изгалятся... В общем, правила такие: Сначала номер. Только номер, и ничего кроме номера. Потом точка с запятой(<;>. Потом дата. Не с запятыми в качестве разделителя ДД.ММ.ГГГГ, а точкой. как бы не было противно. И ВСЕ. Никаких пояснений. Никаких сммволов "чтоб запомнить". Ничего. В смысле, именно ничего. и "г." не надо. Все "пояснения" и "для памяти" - в комментарий. Достаточно было в похвальбушке нового релиза упомянуть. "Сволочи, однозначно" (с). |
А вот из 615 Бухии замечательный образец: Функция глСобратьДанныеДляСЗВ2015(...) ...строка 27491 Если [b]ВидЗастрахованногоЛица=Перечисление.ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцы[/b] Тогда ДолгосрочныйДоговор=Сотрудник.ДолгосрочныйДоговорСИностранцем.Получить(ДатаМесяца); Если ДолгосрочныйДоговор=0 Тогда ... ИначеЕсли [b]ВидЗастрахованногоЛица=Перечисление.ВидыЗастрахованныхЛицОбязательногоСтрахования.ВременноПребывающиеИностранцыНестрахуемые[/b] Тогда ... КонецЕсли; КонецЕсли; Ну ладно длительность трудового договора уже не влияет на стаж временно пребывающего - это одна ошибка, но вот условие Если а=1 Тогда Если а=2 Тогда КонецЕсли; КонецЕсли; это, конечно, мощно. |
Там 4 молдаванина, 8 таджиков и 1 белорус (Руководитель проектов). |
7-VZ > Это ты ещё не видел, что с реквизитом ДатаОплаты в счетах-фактурах и записях сделали. Вот как его надо заполнять: Разделитель между номером и датой ";" Допустимые форматы даты: ДД.ММ.ГГГГ(ГГ), ДД/ММ/ГГГГ(ГГ), ДД\ММ\ГГГГ(ГГ) Например: один документ оплаты: 1;01.01.2015 два документа оплаты: 1;01.01.2015;2;01.02.2015 А ещё в старых книгах покупок и продаж 1137 (которая до 735 была ) с недавнего релиза по ошибке выкинули заполнение граф по ставке 20%. Так что если есть умники типа моих, восстановивших НДС по купленным в 2003 по ставке 20% и списанным в 2013 году товарам, то их ждёт сюрприз - сумма перекочует в 18%. |
9-DeiMos > Ну тогда есть надежда! |
10-Харлампий Дымба > Не-не-не. Никаких "допустимых": точка, и все. Тоже мне, творчество Захотелось. Обойдутся. Единообразие полезней безобразия. |
7-VZ > Проблема как раз была не в порядке заполнения реквизита ДатаНомерСчетаФактуры - ведь он в документах прихода скрыт и заполняется автоматически при записи документа. Как раз из реквизитов НомерСчетаФактуры и ДатаСчетаФактуры. И как раз в виде НомерСчетаФактуры+";"+ДатаСчетаФактуры. Проблема в том, что при наличии [b]отдельных[/b] реквизитов НомерСчетаФактуры и ДатаСчетаФактуры они книгу покупок заполняют разбирая на части [b]составной[/b] реквизит ДатаНомерСчетаФактуры. Который, действительно, мог до обновления (а это был где-то 585 релиз) заполняться как угодно. И тут вдруг раз - после обновления реквизит ДатаНомерСчетаФактуры исчезает для редактирования, в документах введённых до обновления не виден, данные хранит в чёрти каком виде. Ведь в книге покупок 1137 графа была "Дата и номер счета-фактуры продавца", а в 735 стала "Номер и дата счета-фактуры продавца". Тут изначально был просчёт с одним реквизитом для ДатаНомерСчетаФактуры, который вроде решили исправить, но, блин, как обычно - на 95% Вот и с ДатаОплаты - такая же байда. Один реквизит, который изначально заполняется как попало, а потом раз - извольте по определенному формату, да ещё задним числом. А кто ошибся, пусть пеняет на себя. И, вы не поверите, в документе ЗаписьКнигиПокупок ДатОплаты заполняется так: Функция Заполнить(ДокОсн) .. [b]ИначеЕсли[/b] ((ДокОсн.Вид() = [b]"Выписка"[/b]) или (ДокОсн.Вид() = "РасходныйОрдер")) Тогда ДатаОплаты = Формат(ДокОсн.ДатаДок, "Д"); . [b]Если[/b] (ДокОсн.Вид() = "[b]СчетФактураПолученный[/b]") или (ДокОсн.Вид() = "СчетФактура") . Тогда . ДатаОплаты = ДокОсн.ДатаОплаты; . КонецЕсли; ... КонецЕсли; По старой схеме: Если а=1 Тогда Если а=2 Тогда КонецЕсли; КонецЕсли; |
4-Buhta >В компаниях, с количеством сотров до сотни, - не нужны навороты и извращения ЗиКа, а на счетах бухгалтерии всё видится, как на ладони... Удивляет другое - разработчики 1С считают зазорным проверить собственный код тестированием. В этом конкретном случае проблема существенная - вылет по ошибке обращения к простой переменной, как к таблице значений, что является уже издевательством над конечным потребителем программного продукта. |
14-perpetum >Исправление: "таблице значений" читать, как "списку значений" |
ДатаНомерСчетаФактуры - это строковый реквизит в старых релизах бух77. с какого-то релиза появились два реквизита - отдельно для даты, отдельно для номера. И, по-моему, нормально книга (печатная!) формировалась после того как и два реквизита появились. По крайней мере у меня закачка в бухбазу из торг.базы шла - я вообщем всегда заполнял актуальные реквизиты - а старые - один оператор написать не проблем - тоже заполнял |
Там еше при непустом ДатаНомер проводки по ЗПК делаются ) Стояла в нем именно ";" |
Весь 2015 приходилось править заполнение Таблицы 2 для Комплексной - эти казлы "перепутали" номера ячеек (остались от предыдущего бланка). В новом бланке 2016 - новые приколы от уродов. Таблица 6 (расчет базы ФСС_НС) не заполняется. Номер таблицы поменялся (стал 12), но этим все до буя Стр. 2119 fss_get.ert (16q1006) Если НомерЛистаОтчета = 11 Тогда Если исправить, то дальше эта тварь новую подлянку кидает: Стр. 2310 СписокДанных4ФССРаздела2Таблица6.ДобавитьЗначение(Формат(ШаблонФСС_НС.ПроцентОтРасчетнойБазы,"Ч15.2"),"П000060001006"); затирая ячейку П000060001006 (СуммаВыплатыЗаМесяц3) ствкой ФСС_НС Должна быть ячейка П000060005003 Стр. 2310 fss_get.ert (16q1006) СписокДанных4ФССРаздела2Таблица6.ДобавитьЗначение(Формат(ШаблонФСС_НС.ПроцентОтРасчетнойБазы,"Ч15.2"),"П000060005003"); |
+(18) Там еще куча всякого мусора, но это хотя бы что-то заполнит ... |
14-Чучундер > Там проблема в том, что до ПП 735 (01.10.2014) в книге покупок была графа "Дата и номер счет фактуры продавца", а потом стало "Номер и дата счет фактуры продавца". Соответственно они этот скрытый реквизит ДатаНомерСчетаФактуры начали для документов с 01.10.2014 в другом порядке заполнять - сначала номер, потом дата. НО! При обновлении в выписанных до обновления документах с датой после 01.10.2014 реквизит ДатаНомерСчетаФактуры не перезаполняют по новым правилам, а оставляют как есть. Соответственно в книге покупок неправильно будет показан номер и дата, а в 8 разделе Декларации дата будет пустой - из-за преобразования типов, а в номере будет сидеть дата. У тех кто своевременно обновился - проблем особых нет. Если обновляться раз в год - печалька. Мы только что с тобой на Мисте отметились в теме такой вот невезучей. А всего-то 1С надо было сделать любое: * при обновлении перезаполнить реквизит ДатаНомерСчетаФактуры по новым правилам - для всех документов с датой после 01.10.2014; * забыть про этот ДатаНомерСчетаФактуры и использовать ДатаСчетаФактуры и НомерСчетаФактуры; * использовать в книге покупок для разбора даты и номер вместо глРазложить() свою же замечательно работающую и с любовью написанную РазделитьНомерИДату(). |
Текущее время: 07:42. Часовой пояс GMT +3. |