|
V8: программно очистить субконто в наборе проводок | ☑ | ||
---|---|---|---|---|
0
Sasha_1CK
16.04.14
✎
08:03
|
НаборПроводок = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
НаборПроводок.Отбор.Регистратор.Установить(Выборка.Регистратор); НаборПроводок.Прочитать(); Для Каждого Проводка Из НаборПроводок Цикл Сообщить(Выборка.Регистратор); Если Проводка.СчетДт = Выборка.Счет и Проводка.СчетКт = Выборка.КорСчет Тогда Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1"); КонецЕсли; КонецЦикла; НаборПроводок.Записать(); Меняю программно счет в наборе проводок/ Но набор не записывается, так как количество субконто на счетах разное - как удалить из проводки субконо "Номенклатура" и "Ставки НДС" |
|||
1
shuhard
16.04.14
✎
08:05
|
(0) в каждой типовой установка субконто живёт в общем модуле
|
|||
2
Sasha_1CK
16.04.14
✎
08:08
|
(1) установка живет - это понятно
а вот очистка там как то не фигурирует |
|||
3
hhhh
16.04.14
✎
08:14
|
(2) в каждом документе типовой есть выбор счета. Примеры: РКО, Списание с банковского счета. Миллион примеров. Включай уже голову.
|
|||
4
Sasha_1CK
16.04.14
✎
08:23
|
(3) Включил.
Но все равно не доходит - там меняется состав субконто на форме а мне нужно очистить субконто в проводке |
|||
5
cw014
16.04.14
✎
08:25
|
Продам СП, дорого:
РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии>.Удалить (AccountingRegisterRecordSet.<Имя регистра бухгалтерии>.Delete) РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии> (AccountingRegisterRecordSet.<Имя регистра бухгалтерии>) Удалить (Delete) Вариант синтаксиса: По индексу Синтаксис: Удалить(<Индекс>) Параметры: <Индекс> (обязательный) Тип: Число. Позиция записи в наборе. Вариант синтаксиса: По объекту записи Синтаксис: Удалить(<Запись>) Параметры: <Запись> (обязательный) Тип: РегистрБухгалтерииЗапись. Удаляемая запись. Описание: Удаляет запись из набора записей регистра бухгалтерии. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
6
cw014
16.04.14
✎
08:25
|
А для тех, кто в танке, еще и это:
РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии>.Очистить (AccountingRegisterRecordSet.<Имя регистра бухгалтерии>.Clear) РегистрБухгалтерииНаборЗаписей.<Имя регистра бухгалтерии> (AccountingRegisterRecordSet.<Имя регистра бухгалтерии>) Очистить (Clear) Синтаксис: Очистить() Описание: Очищает набор записей регистра бухгалтерии, удаляя из него все записи. Доступность: Сервер, толстый клиент, внешнее соединение. |
|||
7
hhhh
16.04.14
✎
08:26
|
(4) вообще-то, чтобы не париться можно таблицу значений использовать
НаборПроводок = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей(); НаборПроводок.Отбор.Регистратор.Установить(Выборка.Регистратор); НаборПроводок.Прочитать(); ТЗ = НаборПроводок.Выгрузить(); Для Каждого Проводка Из ТЗ Цикл Сообщить(Выборка.Регистратор); Если Проводка.СчетДт = Выборка.Счет и Проводка.СчетКт = Выборка.КорСчет Тогда Проводка.СчетДт = ПланыСчетов.Хозрасчетный.НайтиПоКоду("90.02.1"); Проводка.СубконтоДт1 = Неопределено; Проводка.СубконтоДт2 = Неопределено; Проводка.СубконтоДт3 = Неопределено; КонецЕсли; КонецЦикла; НаборПроводок.Загрузить(ТЗ); НаборПроводок.Записать(); |
|||
8
Sasha_1CK
16.04.14
✎
08:30
|
(5) Зачем мне удалять все записи?
Мне нужно изменить счет дебет и убрать из записи лишние субконто. зачем мне очищать набор записей и удалять из него записи? А для объекта Проводка.СубконтоДТ Методы очистить и удалить не работают. Собственно возможно и вообще нет такого метода - об чем и был изначальный вопрос -может я в глухую стенку стучусь. |
|||
9
shuhard
16.04.14
✎
08:35
|
(8) [может я в глухую стенку стучусь.]
мы пока не видим даже попыток что-то сделать |
|||
10
cw014
16.04.14
✎
08:45
|
(8) Сорри, не то... Вот что тебя спасет:
РегистрБухгалтерииСубконто.<Имя регистра бухгалтерии> (AccountingRegisterExtDimensions.<Имя регистра бухгалтерии>) РегистрБухгалтерииСубконто.<Имя регистра бухгалтерии> (AccountingRegisterExtDimensions.<Имя регистра бухгалтерии>) Элементы коллекции: КлючИЗначение Для объекта доступен обход коллекции посредством оператора Для каждого … Из … Цикл. При обходе выбираются Ключ - вид субконто, Значение - значение субконто. Возможно обращение к значению субконто посредством оператора [...]. В качестве аргумента передается вид субконто (ПланВидовХарактеристикСсылка.<Имя плана видов характеристик>). Свойства: <Имя вида субконто> (<Extra dimension type name>) Методы: Вставить (Insert) Количество (Count) Очистить (Clear) Удалить (Delete) Конструкторы: Основной Описание: Коллекция значений субконто записи регистра бухгалтерии. Установка и получение значения конкретного субконто осуществляется через оператор [], в качестве параметра которому передается вид субконто. Возвращается значение типа КлючИЗначение. В качестве ключа вид субконто, в качестве значения значение субконто. Доступность: Сервер, толстый клиент, внешнее соединение. См. также: РегистрБухгалтерииВыборка, свойство Субконто РегистрБухгалтерииВыборка, свойство СубконтоДт РегистрБухгалтерииВыборка, свойство СубконтоКт РегистрБухгалтерииЗапись, свойство Субконто РегистрБухгалтерииЗапись, свойство СубконтоДт РегистрБухгалтерииЗапись, свойство СубконтоКт |
|||
11
cw014
16.04.14
✎
08:45
|
Поизучай методы все таки
|
|||
12
Sasha_1CK
16.04.14
✎
11:17
|
результат получен спасибо (7)
Но и (7) в чистом виде не работает Проводка.СубконтоДт1 = Неопределено; Проводка.СубконтоДт2 = Неопределено; Проводка.СубконтоДт3 = Неопределено; Ибо в этом варианте значение субконто очищается, но сам ВидСубконто в проводке остается и при записи программа ругается на то что - на счете такой субконто не предусмотрен. Собственно и стандартными методами СП - результат тот же - в отладчике я вижу, что значение субконто "Неопределено" - но ключ "вид субконто" все равно не очищается - и ошибка вываливается. Работает если сделать выгрузку в ТЗ и обнулить ВидСубконто Проводка.ВидСубконтоДт1 = Неопределено; Проводка.ВидСубконтоДт2 = Неопределено; Проводка.СубконтоДт1 = Неопределено; Проводка.СубконтоДт2 = Неопределено; Но штатными методами до вида субконто я так и не понял как достучаться. Всем Спс |
|||
13
laeg
16.04.14
✎
11:21
|
На сколько мне память не изменяет работает механизм ввида
Проводка.СубконтоДт.Номенклатура = Неопределено; |
|||
14
Sasha_1CK
16.04.14
✎
11:39
|
(13) именно потому что этот механизм не работал - я и создал тему.
Это работает если нужно просто удалить значение. Но у меня в проводке меняется счет 90011 на 90021. на старом счете 3 субконто, на новом - только 1 субконто. при очистке значения, все равно в СубконтоДт остается ключ привязанный к субконто счета и при попытке сохранить набор записей происходит попытка создать аналитику с пустым значением - а поскольку на новом счете такой аналитики нет - то платформа вываливает ошибку - попытка записать несуществующее субконто в проводке. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |