Ошибки комплексной конфигурации 7.7
20.01.2010
20:49
#1
"Ошибка 1 (релиз 7.70.493):
Отчет.ПодготовкаСведенийДляИМНС, примерное место - строка 2120
Имеем два одинаковых блока алгоритма, очевидно второй был просто скопирован с первого и подправлен:
//имущественные вычеты на которые сотрудник имел право
ОписаниеВычета311=ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы+ПоследнийМесяц-1,3).ПолучитьЗначение(5);
Если ТипЗначенияСтр(ОписаниеВычета311)="СписокЗначений" Тогда
ВсегоСуммаВычета311 = ОписаниеВычета311.ПолучитьЗначение(3);
НомерУведомления = ОписаниеВычета311.ПолучитьЗначение(4);
ДатаУведомления = Формат(ОписаниеВычета311.ПолучитьЗначение(5), "ДДДММГГГГ");
КодФНСУведомления = ОписаниеВычета311.ПолучитьЗначение(6);
КонецЕсли;
ОписаниеВычета312=ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы+ПоследнийМесяц-1,3).ПолучитьЗначение(6);
Если ТипЗначенияСтр(ОписаниеВычета312)="СписокЗначений" Тогда
ВсегоСуммаВычета312 = ОписаниеВычета312.ПолучитьЗначение(3);
НомерУведомления = ?(ПустоеЗначение(НомерУведомления)=1,ОписаниеВычета312.ПолучитьЗначение(4),НомерУведомления);
ДатаУведомления = ?(ПустоеЗначение(ДатаУведомления)=1,Формат(ОписаниеВычета311.ПолучитьЗначение(5), "ДДДММГГГГ"),ДатаУведомления);
КодФНСУведомления = ?(ПустоеЗначение(КодФНСУведомления)=1,ОписаниеВычета312.ПолучитьЗначение(6),КодФНСУведомления);
КонецЕсли;
Ошибка во втором блоке в строке ДатаУведомления= ..., при внимательном рассмотрении в самом деле видно, что это ошибка. Там должно быть написано "ОписаниеВычета312", а не "ОписаниеВычета311".
Ошибка 2 (релиз 7.70.493):
Обработка.РасчетЕСН. Таблица "13н_Раздел2". Колонка 36, строка 195. Ну, или относительно состава печатной формы, это строка "0600" в разделе 00002 и колонка "ТФОМС".
Имеем там в ячейке формулу:
Формат(ИтоговаяТаблица.ПолучитьЗначение(4,"Строка06ТФОМС")-ИтоговаяТаблица.ПолучитьЗначение(1,"Строка06ТФОМС"),"Ч-15."+Точность)
А она неправильная! Должна быть такая:
Формат(ИтоговаяТаблица.ПолучитьЗначение(4,"Строка06ТФОМС"),"Ч-15."+Точность)
Почему? А посмотрите соседние ячейки с этой и уловите логику. Очевидно, формула была тоже просто скопирована вместе с областью таблицы с другого места (с "0610" строки). Соседние подправили, а эту нет.
Ошибка 3 (релиз 7.70.493):
Если у нас в комплексной ведется учет более чем одного собственного юрлица, то в справочнике юрлиц имеем несколько элементов. Теперь смотрим в глобальный модуль:
Функция глВеличинаПроцентаСтавкиЕСН(ЮрЛицо, Код, ДатаАктуальности)
СпрСтавкиЕСН = СоздатьОбъект("Справочник.СтавкиЕСН");
СпрСтавкиЕСН.ИспользоватьВладельца(ЮрЛицо);
Если СпрСтавкиЕСН.НайтиПоКоду(Код,0) = 1 Тогда
Возврат СпрСтавкиЕСН.Процент.Получить(ДатаАктуальности)
КонецЕсли;
Возврат 0
КонецФункции
Ошибка в "СпрСтавкиЕСН.НайтиПоКоду(Код,0)". Почему 0 то? Зачем вообще тогда было писать ИспользоватьВладельца(...), если поиск идет "по всему справочнику"? Что имеем в результате ошибки? А вот что. При аргументе ФлагПоиска=0 будет найден первый подходящий элемент справочника такой, который соответствует режиму упорядочивания элементов. То есть, практически, результат данного поиска зависит от того, в каком порядке отсортированы по наименованию элементы в справочнике. И мы получим вовсе не информацию о том есть у нас у юрлица ЕСН или нет, а просто какое то значение, с нужным нам юрлицом никак и не связанное. В итоге больничные листы могут при проведении в журнал документов записать либо кучу ненужных записей про особые режимы, либо не сделать этого в том случае когда это надо.
Ошибка 4 (релиз 7.70.493):
В модуле формы документа БольничныйЛист сделана процедура Печать2010(), но ниоткуда она не вызывается. В итоге отрабатывает Печать2007 и мы имеем печатную форму со сведениями о среднем заработке, в которой нет нижней части. Исправляем так:
В процедуре Печать добавляем/меняем строки:
Если ДатаНачалаСобытия >= '01.01.2010' Тогда
Печать2010(ПараметрПечати);
ИначеЕсли ((ДатаНачалаСобытия < '01.01.2007') и (Окончание >= '01.01.2007')) или (ДатаНачалаСобытия >= '01.01.2007') Тогда
...
Ошибка 5 (фича?) (релиз 7.70.493):
в правилах формирования проводок для ситуации "Реализация" выкинули правило установки во второе субконто счета 90.1.1 значения ставки НДС. Это очень плохо (прям сильно ругаюсь). Все бухи "мои" просто в недоумении. Это очень нужная информация! Зачем это сделали - понятно. Из за ввода реквизита "Рублевая оценка" в регистры (о проблемах с вводом этого ресурса я писал тут: . У нас тут все в рублях, поэтому я своим исправил просто. 1. Снова вернул ситуационную привязку к движению регистра КнигаПродаж, как это было в старых релизах. 2. В таблицу "Проводки" обработки "НастройкаФормированияПроводок" в строки, касающиеся этого события внес допустимый для выбора элемент правила "СтавкаНДС".
В результате у нас аналитика по ставкам на месте.
Ошибка 6 (релиз 7.70.493):
Документ.Сторно. Модуль проведения, почти самый конец. Имеются строки:
// Сразу закроем остатки по книге покупок (продаж), чтобы не анализировать их
// документом "Формирование книги покупок (продаж)"
....
Ага, отличные дела... А проводки кто делать будет? Регистры подвигали, а проводки не сделали, в итоге обороты в книге продаж верны, но с оборотами 68.2 не сходятся. "Документ.Сторно" в справочниках Хозяйственные операции + Проводки по ним отсутствует как событие, поэтому там и не описать нужные нам проводки. Я добавлял кусок алгоритма прямо тут в модуле проведения."
Отчет.ПодготовкаСведенийДляИМНС, примерное место - строка 2120
Имеем два одинаковых блока алгоритма, очевидно второй был просто скопирован с первого и подправлен:
//имущественные вычеты на которые сотрудник имел право
ОписаниеВычета311=ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы+ПоследнийМесяц-1,3).ПолучитьЗначение(5);
Если ТипЗначенияСтр(ОписаниеВычета311)="СписокЗначений" Тогда
ВсегоСуммаВычета311 = ОписаниеВычета311.ПолучитьЗначение(3);
НомерУведомления = ОписаниеВычета311.ПолучитьЗначение(4);
ДатаУведомления = Формат(ОписаниеВычета311.ПолучитьЗначение(5), "ДДДММГГГГ");
КодФНСУведомления = ОписаниеВычета311.ПолучитьЗначение(6);
КонецЕсли;
ОписаниеВычета312=ДоходыВычетыНалогиСотрудников.ПолучитьЗначение(СтрокаИтоговойТаблицы+ПоследнийМесяц-1,3).ПолучитьЗначение(6);
Если ТипЗначенияСтр(ОписаниеВычета312)="СписокЗначений" Тогда
ВсегоСуммаВычета312 = ОписаниеВычета312.ПолучитьЗначение(3);
НомерУведомления = ?(ПустоеЗначение(НомерУведомления)=1,ОписаниеВычета312.ПолучитьЗначение(4),НомерУведомления);
ДатаУведомления = ?(ПустоеЗначение(ДатаУведомления)=1,Формат(ОписаниеВычета311.ПолучитьЗначение(5), "ДДДММГГГГ"),ДатаУведомления);
КодФНСУведомления = ?(ПустоеЗначение(КодФНСУведомления)=1,ОписаниеВычета312.ПолучитьЗначение(6),КодФНСУведомления);
КонецЕсли;
Ошибка во втором блоке в строке ДатаУведомления= ..., при внимательном рассмотрении в самом деле видно, что это ошибка. Там должно быть написано "ОписаниеВычета312", а не "ОписаниеВычета311".
Ошибка 2 (релиз 7.70.493):
Обработка.РасчетЕСН. Таблица "13н_Раздел2". Колонка 36, строка 195. Ну, или относительно состава печатной формы, это строка "0600" в разделе 00002 и колонка "ТФОМС".
Имеем там в ячейке формулу:
Формат(ИтоговаяТаблица.ПолучитьЗначение(4,"Строка06ТФОМС")-ИтоговаяТаблица.ПолучитьЗначение(1,"Строка06ТФОМС"),"Ч-15."+Точность)
А она неправильная! Должна быть такая:
Формат(ИтоговаяТаблица.ПолучитьЗначение(4,"Строка06ТФОМС"),"Ч-15."+Точность)
Почему? А посмотрите соседние ячейки с этой и уловите логику. Очевидно, формула была тоже просто скопирована вместе с областью таблицы с другого места (с "0610" строки). Соседние подправили, а эту нет.
Ошибка 3 (релиз 7.70.493):
Если у нас в комплексной ведется учет более чем одного собственного юрлица, то в справочнике юрлиц имеем несколько элементов. Теперь смотрим в глобальный модуль:
Функция глВеличинаПроцентаСтавкиЕСН(ЮрЛицо, Код, ДатаАктуальности)
СпрСтавкиЕСН = СоздатьОбъект("Справочник.СтавкиЕСН");
СпрСтавкиЕСН.ИспользоватьВладельца(ЮрЛицо);
Если СпрСтавкиЕСН.НайтиПоКоду(Код,0) = 1 Тогда
Возврат СпрСтавкиЕСН.Процент.Получить(ДатаАктуальности)
КонецЕсли;
Возврат 0
КонецФункции
Ошибка в "СпрСтавкиЕСН.НайтиПоКоду(Код,0)". Почему 0 то? Зачем вообще тогда было писать ИспользоватьВладельца(...), если поиск идет "по всему справочнику"? Что имеем в результате ошибки? А вот что. При аргументе ФлагПоиска=0 будет найден первый подходящий элемент справочника такой, который соответствует режиму упорядочивания элементов. То есть, практически, результат данного поиска зависит от того, в каком порядке отсортированы по наименованию элементы в справочнике. И мы получим вовсе не информацию о том есть у нас у юрлица ЕСН или нет, а просто какое то значение, с нужным нам юрлицом никак и не связанное. В итоге больничные листы могут при проведении в журнал документов записать либо кучу ненужных записей про особые режимы, либо не сделать этого в том случае когда это надо.
Ошибка 4 (релиз 7.70.493):
В модуле формы документа БольничныйЛист сделана процедура Печать2010(), но ниоткуда она не вызывается. В итоге отрабатывает Печать2007 и мы имеем печатную форму со сведениями о среднем заработке, в которой нет нижней части. Исправляем так:
В процедуре Печать добавляем/меняем строки:
Если ДатаНачалаСобытия >= '01.01.2010' Тогда
Печать2010(ПараметрПечати);
ИначеЕсли ((ДатаНачалаСобытия < '01.01.2007') и (Окончание >= '01.01.2007')) или (ДатаНачалаСобытия >= '01.01.2007') Тогда
...
Ошибка 5 (фича?) (релиз 7.70.493):
в правилах формирования проводок для ситуации "Реализация" выкинули правило установки во второе субконто счета 90.1.1 значения ставки НДС. Это очень плохо (прям сильно ругаюсь). Все бухи "мои" просто в недоумении. Это очень нужная информация! Зачем это сделали - понятно. Из за ввода реквизита "Рублевая оценка" в регистры (о проблемах с вводом этого ресурса я писал тут: . У нас тут все в рублях, поэтому я своим исправил просто. 1. Снова вернул ситуационную привязку к движению регистра КнигаПродаж, как это было в старых релизах. 2. В таблицу "Проводки" обработки "НастройкаФормированияПроводок" в строки, касающиеся этого события внес допустимый для выбора элемент правила "СтавкаНДС".
В результате у нас аналитика по ставкам на месте.
Ошибка 6 (релиз 7.70.493):
Документ.Сторно. Модуль проведения, почти самый конец. Имеются строки:
// Сразу закроем остатки по книге покупок (продаж), чтобы не анализировать их
// документом "Формирование книги покупок (продаж)"
....
Ага, отличные дела... А проводки кто делать будет? Регистры подвигали, а проводки не сделали, в итоге обороты в книге продаж верны, но с оборотами 68.2 не сходятся. "Документ.Сторно" в справочниках Хозяйственные операции + Проводки по ним отсутствует как событие, поэтому там и не описать нужные нам проводки. Я добавлял кусок алгоритма прямо тут в модуле проведения."
20.01.2010
23:30
#2
Ошибка 7 :
неправильная обработка метода ОчиститьДвижения() для регистра Покупатели/Поставщики
если любой проведённый документ интерактивно перепровести, то метод ОчиститьДвижения() оставляет последние значение прошлого проведения
править процедуру глДвижениеДолгов()
подробнее
неправильная обработка метода ОчиститьДвижения() для регистра Покупатели/Поставщики
если любой проведённый документ интерактивно перепровести, то метод ОчиститьДвижения() оставляет последние значение прошлого проведения
править процедуру глДвижениеДолгов()
подробнее
20.01.2010
23:34
#3
Ошибка 8:
Поступление ТМЦ (Импорт)
возникновение лишних движений => и проводок
ошибка округления, подробнее
Поступление ТМЦ (Импорт)
возникновение лишних движений => и проводок
ошибка округления, подробнее
21.01.2010
14:25
#4
пояснение про ошибку 7:
ОчиститьДвижения() не очищает последние движение любого регистра...
ОчиститьДвижения() не очищает последние движение любого регистра...
26.01.2010
22:57
#5
"Еще одна ошибка закралась в новые релизы (493 и 494). При расчете больничного листа по уходу за ребенком задваивается сумма начисления. Практически в самом конце процедуры глСобратьДанныеДляБЛ2010 в строке 75028 вместо
СуммаПособияПоловинаДоляНеЕНВД = СуммаПособияПолная - СуммаПособияПоловинаДоляЕНВД;
должно быть
СуммаПособияПоловинаДоляНеЕНВД = СуммаПособияПоловина - СуммаПособияПоловинаДоляЕНВД;"
СуммаПособияПоловинаДоляНеЕНВД = СуммаПособияПолная - СуммаПособияПоловинаДоляЕНВД;
должно быть
СуммаПособияПоловинаДоляНеЕНВД = СуммаПособияПоловина - СуммаПособияПоловинаДоляЕНВД;"
27.01.2010
20:06
#7
Попунктно не сравнивал. Ссылку с infostart читал, при обновлениях ЗиК применял. В комплексной тоже проблемы схожие, но я там исправлял до того как с материалом на infostart-е ознакомился. Правил то что "выстрелило", не факт, что поправил или просмотрел все эти места. Сейчас что то работы привалило, некогда даже про ошибки комплексной продолжить. Потом вернусь к этой теме
27.01.2010
22:14
#8
> Попунктно не сравнивал. Ссылку с infostart читал, при обновлениях ЗиК применял. В комплексной тоже проблемы схожие, но я там исправлял до того как с материалом на infostart-е ознакомился. Правил то что "выстрелило", не факт, что поправил или просмотрел все эти места. Сейчас что то работы привалило, некогда даже про ошибки комплексной продолжить. Потом вернусь к этой теме
ну я так понял, что ошибки в комплексной в сфере "ЗиКа" только в этом годы вылазят ?
ну я так понял, что ошибки в комплексной в сфере "ЗиКа" только в этом годы вылазят ?
28.01.2010
09:42
#10
"Мои 5 копеек:
Комплексная, 493, КарточкаУчетаПоСтраховымВзносам
Процедура ПриОткрытии(ФлагЧтенияНастройки)
НачальныйГод = 2010;
КонечныйГод = Мин(ДатаГод(РабочаяДата()), 2010);
Если НачальныйГод>КонечныйГод Тогда
СпЛет.ДобавитьЗначение(2010,"2010 г.");
СпЛет.ТекущаяСтрока(1);
Иначе
Для ГодВСписок = НачальныйГод По КонечныйГод Цикл
СпЛет.ДобавитьЗначение(ГодВСписок,Строка(ГодВСписок)+" г.");
КонецЦикла;
СпЛет.ТекущаяСтрока(СпЛет.РазмерСписка());
КонецЕсли;
На мой взгляд, в этом месте всегда будет либо:
СпЛет.ДобавитьЗначение(2010,"2010 г.");
СпЛет.ТекущаяСтрока(1);
либо:
Для ГодВСписок = 2010 По 2010 Цикл
То есть, 2010 год навечно
."
Комплексная, 493, КарточкаУчетаПоСтраховымВзносам
Процедура ПриОткрытии(ФлагЧтенияНастройки)
НачальныйГод = 2010;
КонечныйГод = Мин(ДатаГод(РабочаяДата()), 2010);
Если НачальныйГод>КонечныйГод Тогда
СпЛет.ДобавитьЗначение(2010,"2010 г.");
СпЛет.ТекущаяСтрока(1);
Иначе
Для ГодВСписок = НачальныйГод По КонечныйГод Цикл
СпЛет.ДобавитьЗначение(ГодВСписок,Строка(ГодВСписок)+" г.");
КонецЦикла;
СпЛет.ТекущаяСтрока(СпЛет.РазмерСписка());
КонецЕсли;
На мой взгляд, в этом месте всегда будет либо:
СпЛет.ДобавитьЗначение(2010,"2010 г.");
СпЛет.ТекущаяСтрока(1);
либо:
Для ГодВСписок = 2010 По 2010 Цикл
То есть, 2010 год навечно
основные средства в 7.7проблемы с последним обновлением конфигурации 1.6 и с переходом на версию 2 на восьмерке
Читают тему
(гостей: 1)