Имя: Пароль:
1C
1C 7.7
v7: Обновление ЗиК: проблема с вычетами
,
0 interds-2012
 
16.01.12
18:45
Обновляю Зик 314 на 319. Само обновление проходит нормально, а при первом запуске выдает ошибку :

СпрВидыВычетов.Записать();    
{Обработка.ОбновлениеИБ.Форма.Модуль(1674)}: Код не уникальный!

Насколько смог понять, ругается на вычет с кодом 108. Как быть? Две другие базы обновились без проблем...
1 vicof
 
16.01.12
18:47
Переименовать
2 interds-2012
 
16.01.12
18:55
Сменить код не получается...
3 filh
 
16.01.12
18:58
(2) программно смени
4 interds-2012
 
16.01.12
19:18
Программно тоже не дает, пишет, что может быть нарушена последовательность выборки.
5 filh
 
16.01.12
19:24
(4) найди все дубли в первой выборке, потом перебей коды.
6 interds-2012
 
16.01.12
19:26
Да нет нам никаких дублей
7 filh
 
16.01.12
19:29
(6) Врешь. Не было бы этого:
{Обработка.ОбновлениеИБ.Форма.Модуль(1674)}: Код не уникальный!
8 interds-2012
 
16.01.12
19:31
Гадом буду, не вру.
Как я понял, обработка пытается записать элемент справочника с кодом, который уже есть. А изначально - ни каких дублей, справочник-то не очень большой, все глазами видно.
9 filh
 
16.01.12
19:38
(8) посмотри отладчиком на каком коде засыпается обновлениеИБ.
10 interds-2012
 
16.01.12
19:44
Так написал же, на 108 - м.
11 interds-2012
 
16.01.12
19:51
При ближайшем рассмотрении это оказались коды 108, 109, 110, 112.
12 filh
 
16.01.12
19:55
(11) А есть код 108\101?
13 interds-2012
 
16.01.12
20:38
Да
14 filh
 
16.01.12
20:41
А просто 108?
15 interds-2012
 
16.01.12
20:42
есть
16 interds-2012
 
16.01.12
20:48
Программно сменил коды: 108 на 108_ и т.д. Обновление прошло нормально. Возникла следующая проблема: при попытке проведения документа "Выплата зарплаты" выдает ошибку

СуммыВычетов[Номер]=СуммыВычетов[Номер]+СуммаВычета;
{Глобальный модуль(34479)}: Значение индексного выражения находится за границами массива
17 filh
 
16.01.12
20:50
(16) Нужно ссылки проверить на смененые эл-ты.
18 mdocs
 
16.01.12
20:50
кодов вычетов больше чем может влезть в массив. Точно типовая?
19 interds-2012
 
17.01.12
09:10
Типовая...
20 mdocs
 
17.01.12
09:39
тогда пиши обработку по замене твоих левых кодов "108_" и т.д. на предусмотренные 1с и потом их пометишь на удаление и удалишь.
21 adamst
 
30.01.12
09:36
(скомуниздил с другого источника)
Оказалось, что в справочнике Виды вычетов есть лишние строки с кодами 108,109,110,112. Поиск ссылок на эти объекты ничего не дал, поэтому я решил их переименовать в вид "хз108" и т.д.
Можно в начало функции ОписатьКодВычетаНДФЛ2011 добавить код:
Если КодВычета<>НовыйКод Тогда
Если (СпрВидыВычетов.НайтиПоКоду(КодВычета,0)=1)
и (СпрВидыВычетов.НайтиПоКоду(НовыйКод,0)=1)
Тогда
СпрВидыВычетов.Код = "хз"+СпрВидыВычетов.Код;
СпрВидыВычетов.Записать();
КонецЕсли;
КонецЕсли;
Чтобы обновление само нашло и поправило дикие записи.

вроде работает, сами думайте стоит или нет
22 adamst
 
30.01.12
09:38
походу одно обновление упустили, 319 релиза
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан