Имя: Пароль:
1C
1С v8
Предопределенное СубконтоДт1 "перескакивает" после добавления субконто
0 4esz
 
23.06.14
15:24
Здорово всем.
Подскажите что не так делаю.
платформа 8.3.4.482 конфигурация БГУ 1.0.25.9
Есть предопределенный счет "Н97" Субконто1 = "Расходы будущих периодов",тип значения Справичник.РасходыБудущихпериодов.
Это субконто в одном из предыдущих обновлений базы занесли руками (т.е. не обновили ПланВидовХарактеристик, а просто в режиме конфигуратора добавили субконто руками и в предопределенных счетах плана счетов тоже прописали его руками).
Хочу при обновлении изменить его на стандартный который идет с поставкой конфигурации.
Для этого в режиме предприятия создаю Субконто с именем "РасхБудПер" тип значения Справичник.РасходыБудущихпериодов. Добавляю его ВТОРЫМ субконто счету Н97. После этого в плане счетов "Н97" Субконто1 = "Расходы будущих периодов", Субконто2 ="РасхБудПер". Дальше хочу сделать значение Субконто2 равным Субконто1, для этого выполняю следующий код:

Пока Выборка.Следующий() Цикл
        
        НаборЗаписей.Отбор.Регистратор.Установить(Выборка.Регистратор);
        НаборЗаписей.Прочитать();
        Сообщить(""+Выборка.Регистратор);
        ТЗ = НаборЗаписей.Выгрузить();
        
        //Д Н97
        НайденныеСтроки = ТЗ.НайтиСтроки(Новый Структура("СчетДт", СчетДт));
        
        Для Каждого Строка Из НайденныеСтроки Цикл
            //установим СубконтоДт2 равным СубДт1
            Строка.СубконтоДт2 = Строка.СубконтоДт1;
        КонецЦикла;


и вот тут вижу странную вещь если в отладчике поставить точку останова на строке "Для Каждого Строка Из НайденныеСтроки...."
то в переменой Строка мы видем следующее

ВидСубконтоДт1    РасхБудПер    ПланВидовХарактеристикСсылка.ВидыСубконтоБюджет
ВидСубконтоДт2    Расходы будущих периодов    ПланВидовХарактеристикСсылка.ВидыСубконтоБюджет
ВидСубконтоДт3        ПланВидовХарактеристикСсылка.ВидыСубконтоБюджет
ВидСубконтоДт4        ПланВидовХарактеристикСсылка.ВидыСубконтоБюджет

Почему ВидСубконтоДт1 стал вдруг равен РасхБудПер?
и еще если открыть проводки документа то там субконто 1 осталось на своем месте, даже если документ перепровести, то субконто 1 тоже остается на своем месте.
скрин экрана в режиме конфигуратора https://yadi.sk/i/Zahssm7AUWAF5    
скрин экрана в режиме предприятия https://yadi.sk/i/g3U3eeeWUWAWQ
1 Рэйв
 
23.06.14
15:26
Потому что  У счета субконто одного вида может быть только одно. Если будет 2 то они все равно будут ссылаться на одно значение
2 4esz
 
23.06.14
15:33
(1) а если я сделаю РасхБудПер составным?
а почему тогда если значения разные в суб1 и в суб2 сохраняются без проблем?
на картинках это видно
3 acsent
 
23.06.14
15:38
2 одинаковых вида субконто на счете?
Разве может соответствие иметь два разных значения одного ключа?
4 4esz
 
23.06.14
15:43
(3) я сделал тип РасхБудПер составным тип значения Справичник.РасходыБудущихпериодов, Справичник.СерииБланковСтрогойОтчетности

ничего не изменилось
5 4esz
 
23.06.14
21:16
up
6 4esz
 
24.06.14
08:57
(1) (3)
попробовал тоже самое сделать на типовой бухгалтерии 2.0.57.7
версия платформы та же что и для БГУ
и все нормально работает, и субконто местами не меняются
скрин для бух в режиме конфигуратора https://yadi.sk/i/i52CTLeZUe3ot
скрин для бух в режиме предприятия https://yadi.sk/i/nhnfGJdEUe46G

по прежнему вопрос почему в БГУ субконто1 сдвигается? как починить?
7 4esz
 
24.06.14
08:59
8 Armin
 
24.06.14
09:25
Не понимаю, какая разница какой порядковый номер имеет субконто?
9 Armin
 
24.06.14
09:29
НайденныеСтроки = ТЗ.НайтиСтроки(Новый Структура("СчетДт", СчетДт));
Какой смысл в данной строке кода?
10 ИсчадиеADO
 
24.06.14
10:09
(9) в наборе записей ищет проводки по заданному счету?
11 4esz
 
24.06.14
10:21
(8) разница такая:
у меня сейчас на счете Н97 субконто1 неправильное, в смысле оно не то которое идет в типовой, я его хочу привести к типовому. Для этого создаю на этом счете субконто2, переношу в него данные из субконто1, потом обновляю конфу, при этом у меня субконто1 как бы слетает, но становится тем которое идет в типовой конфе. После этого я из субконто 2 переписываю значения в субконто1, а субконто2 удаляю из этого счета и вообще из конфигурации. В результате получаю конфигурацию с "правильным" субконто на счете Н97, которая будет без проблем обновляться.
так во теперь о разнице, когда я выполняю
//установим СубконтоДт2 равным СубДт1
Строка.СубконтоДт2 = Строка.СубконтоДт1;
то у меня значение субконто затираются, а не копируются
а это не есть хорошо.
я могу конечно переписать эту строчку через вид субконто что бы все скоприровалось нормально, но вот где гарантия что потом все хорошо обновится?
И еще счет Н97 это только один счет и у него одно субконто, а у меня таких "неправильных" субконто в базе 4 шт
и например на счете Н91 предопределенных субконто 3 штуки а заменить нужно одно из них, и как оно там ляжет после замены тоже получается ХЗ. А самое главное как оно потом обновляться будет если субконто стоит не на своем месте?
12 4esz
 
24.06.14
10:21
(10) да именно так
13 4esz
 
24.06.14
15:31
Однако надо внимательнее читать справку :-)
Вдруг кому-то пригодится вот ответ на вопрос:

РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии> (AccountingRegisterRecordSet.<Имя регистра бухгалтерии>)
Выгрузить (Unload)
Описание:

Создает таблицу значений и копирует в нее записи набора. Структура полученной таблицы совпадает со структурой набора записей. Значения субконто выгружаются вместе с видами субконто. Для каждого субконто создается пара колонок с идентификаторами вида ВидСубконто<Номер>, Субконто<Номер>, для регистра не поддерживающего корреспонденцию, и ВидСубконтоДт<Номер>, СубконтоДт<Номер>, ВидСубконтоКт<Номер>, СубконтоКт<Номер>, для регистра поддерживающего корреспонденцию. При этом номера <Номер> могут не совпадать с номерами видов субконто на соответствующем счете.