|
Модификация Бу проводки программно | ☑ | ||
---|---|---|---|---|
0
Kalina
24.05.22
✎
16:47
|
Здравствуйте, нужно исправиьт БухПроводку - записать в Субконто - Подразделение
пробовал тремя способами - см код, ни один не работает, - поле в Проводке не изменяется, что я делаю не так ? Набор.Отбор.Регистратор.Установить(Строка.Регистратор); Набор.Прочитать(); Для каждого Запись из Набор Цикл Если Запись.СчетКт = Счет Тогда Сообщить("Запись = " + " СчетДт = " + Запись.СчетДт + " СчетКт = " + Запись.СчетКт); Пустая = Справочники.Подразделения.НайтиПоКоду("000000027"); // Пустая = Справочники.Подразделения.ПустаяСсылка(); Запись.СубконтоКт.Подразделения = Пустая; Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения] = Пустая; Запись.СубконтоКт[Запись.СчетКт.ВидыСубконто[1]] = Пустая; Набор.Записать(); |
|||
1
butterbean
24.05.22
✎
16:49
|
А разве подразделение это субконто? В БП 3 - это измерение регистра бухгалтерии
|
|||
2
Kalina
24.05.22
✎
16:51
|
(1) у меня УПП
|
|||
3
СвинТуз
24.05.22
✎
16:53
|
Срисуй процедуру "УстановитьСубконто" из конфигурации.
Типовая должна быть. |
|||
4
Kalina
24.05.22
✎
16:54
|
Бухи Добавили Субконто к 68.01 счёту (ПодразделенияОрганизацмй) теперь нужно проводки поправить
и вот никак не могу записать это Подразделение в Проводку |
|||
5
Aleksandr N
24.05.22
✎
17:01
|
модуль набора записей, процедура передзаписью. возможно, там что-то происходит.
|
|||
6
Aleksey
24.05.22
✎
17:01
|
банально может Справочники.Подразделения.НайтиПоКоду("000000027"); возвращает пустую ссылку?
И как бы зачем в цикле каждый раз искать, вынеси за цикл |
|||
7
СвинТуз
24.05.22
✎
17:02
|
Есть типовая. Зачем писать?
У проводки Что то типа ТЧ должно быть. Вот туда. Или две ТЧ если ... если. |
|||
8
Kalina
24.05.22
✎
17:08
|
(7) В интернете куча примеров - и там всё просто присваиванием делается, у меня так не получается, буду пробовать типовую юзать
|
|||
9
Kalina
24.05.22
✎
17:12
|
(6) Не, ссылка живая, в цикле - потому что этот Регистратор много проводок делает, их все нужно проверить
|
|||
10
СвинТуз
24.05.22
✎
17:16
|
Просто присваиванием?
Там же тип составной и таблица. |
|||
11
Homer
24.05.22
✎
17:20
|
Может быть попробовать Подразделения организации взять за основу
|
|||
12
СвинТуз
24.05.22
✎
17:22
|
Непосредственно с набором записей движений
Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Контрагенты] = РезультатОС.Арендатор; Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.ОсновныеСредства] = РезультатОС.ОсновноеСредство; |
|||
13
Kalina
24.05.22
✎
17:22
|
(10) Запись.СубконтоКт[Запись.СчетКт.ВидыСубконто[1]] = Пустая;
ну да, присваиванием в нужную ячейку таблицы ??? в отладчике это поле видно, проверка на его значение тоже отрабатывает, а вот присваивать не хосет :( |
|||
14
СвинТуз
24.05.22
✎
17:23
|
// где Выборка - Выборка из результата запроса
Проводка = Движения.Международный.Добавить(); Проводка.Период = ДатаЗакрытияПериода; Проводка.СчетДт = Выборка.Счет; Проводка.СчетКт = ПланыСчетов.Международный.СуммарныеДоходыИРасходы; Проводка.Организация = Организация; Проводка.Сумма = Выборка.СуммаОстатокКт; Проводка.Содержание = "Закрытие счетов в конце финансового года"; Проводка.НомерЖурнала = "Рег"; НомерСубконто = 0; Для каждого ВидСубконто Из Проводка.СчетДт.ВидыСубконто Цикл НомерСубконто = НомерСубконто + 1; ЗначениеСубконто = Выборка["Субконто"+НомерСубконто]; Если ЗначениеЗаполнено(ЗначениеСубконто) Тогда УстановитьСубконто(Проводка.СчетДт, Проводка.СубконтоДт, НомерСубконто, ЗначениеСубконто); КонецЕсли; КонецЦикла; |
|||
15
СвинТуз
24.05.22
✎
17:24
|
Процедура УстановитьСубконто(Счет, Субконто, ИмяСубконто, ЗначениеСубконто) Экспорт
Если Счет = Неопределено ИЛИ Счет.Пустая() Тогда Возврат; КонецЕсли; Если ТипЗнч(ИмяСубконто) = Тип("Число") Тогда Если ИмяСубконто > Счет.ВидыСубконто.Количество() Тогда Возврат; КонецЕсли; ВидСубк = Счет.ВидыСубконто[ИмяСубконто - 1].ВидСубконто; Иначе ВидСубк = ПланыВидовХарактеристик[Метаданные.НайтиПоТипу(ТипЗнч(Счет)).ВидыСубконто.Имя][ИмяСубконто]; Если Счет.ВидыСубконто.Найти( ВидСубк) = Неопределено Тогда Возврат; КонецЕсли; КонецЕсли; Если ВидСубк.ТипЗначения.СодержитТип(ТипЗнч(ЗначениеСубконто)) Тогда Субконто.Вставить(ВидСубк, ЗначениеСубконто); Иначе Сообщить("Неверное значение """ + ЗначениеСубконто + """ для вида субконто <" + ВидСубк + ">"); КонецЕсли; КонецПроцедуры |
|||
16
СвинТуз
24.05.22
✎
17:27
|
Путаете в движениях типы и порядок следования в конфигурации возможно.
Должно быть прозаично все. |
|||
17
СвинТуз
24.05.22
✎
17:28
|
Как в (12) делайте.
Укажите субконто явно. |
|||
18
СвинТуз
24.05.22
✎
17:28
|
По ерунде в квадратных скобках находится в тч
|
|||
19
СвинТуз
24.05.22
✎
17:32
|
Запись.СубконтоКт.Подразделения = Пустая;
Запись.СубконтоКт[ПланыВидовХарактеристик.ВидыСубконтоХозрасчетные.Подразделения] = Пустая; Запись.СубконтоКт[Запись.СчетКт.ВидыСубконто[1]] = Пустая; Изобилие какое-то. 2-ю оставьте. |
|||
20
Kalina
24.05.22
✎
17:42
|
(19) Они по-идее одинаково работают, я так понял что нужно сначала Тип Этого субконто указать, а потом уже присваивать Значение,
чего-то я думал, что тип автоматом при присвоении "наследуется" Спасибо тебе Туз за наводку, завтра наверное добью её |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |