Страница 1 из 3

Функция TxoSetSchet в настройке ТХО

Добавлено: 10 дек 2006, 12:25
sim
В теме
http://www.tyumbit.ru/gal_forum/viewtop ... 9&start=15
Seybukan писал(а):Последними патчами добавили еще:
TxoSetSchetNrec - Заполнить значение Nrec счета ТХО
TxoSetSchet - Заполнить Nrec счета ТХО по счету и субсчету
TxoSetDate - Заполнить значение даты

Кроме этого в 8.1 есть атрибут счет, субсчет.
То есть можно счет/субсчет пробивать автоматом, например из подразделения счет затрат, а из группы МЦ субсчет 10 счета.
То есть в ТХО получиться один шаблон без фильтров. Главное чтобы сам счет субсчет привязывали к каталогам.
А уж к каким каталог - тут надо анализировать и искать цепочки связанных каталогов с счетами/субсчетами.
В патче ТХО05 для 7.12 и 8.0 такую возможность тоже добавили. Только вот разобраться как это работает - сложновато. Seybukan, не поможешь?
Пример, нужно в ТХО к накладной на закупку с помощью TxoSetSchet автоматически проставить субсчет 10 счета в зависимости от группы МЦ.
Соответствие например такое (группа МЦ - субсчет):
1010 - 01
1020 - 02
1030 - 03
и т.д.
Попытались навесить на группу МЦ внешние атрибуты со значениями, соответствующими субсчетам 10 счета, а потом в ТХО их вытащить и проставить. Но почему-то не вышло.
&1 = &NP_[Рез:БезНалогов] - цикл по спецификации
&2 = &KAU[Кау:8] - NREC группы МЦ
&3 = coTXOGetExtAttr('GROUPMC','Счет',&2) - Внешний атрибут (субсчет) группы МЦ
&4 = TxoSetSchet(163,'10',&3,FALSE) - Проставить субсчет в проводку
Алгоритм в НДЕ - &NP_[Рез:БезНалогов]
Дебет Счет 10 Субсчет - режим 3

Что здесь не так?
Может, потому что &3 вынимает NREC, а мы пытаемся использовать его в &4 как значение?
В протоколе проводки видно, что значения &1, &2, &3 вроде бы вытаскиваются номально, а вот с &4 - непонятно

Добавлено: 10 дек 2006, 12:49
maikl
А почему так сложно? Мы это делали всегда с помощью фильтров, без этой функции. Если в коде группы есть признак нужного субсчета.

Добавлено: 11 дек 2006, 11:48
sim
Как раз от фильтров и хочется уйти. Чтобы в ТХО остался один шаблон. Например, списание материалов в производство. У 20-го счета 8 субсчетов. У 10-го счета 15 субсчетов. И количество групп матценностей больше 20-ти. Итого получаем - на каждый субсчет 20-го отдельная ТХО, в каждой из которых по 15 шаблонов с фильтрами по группам МЦ на каждый субсчет 10-го счета. То есть приходится плодить более 100 шаблонов, отсюда вероятность ошибок, трудности с перенастройкой, контролем и т.д.
А если применить TxoSetSchet, то (в идеале) должна остаться одна ТХО с одним шаблоном.

Добавлено: 11 дек 2006, 11:52
Seybukan
Арибут должен быть String, ну или по крайней мере преобразуйте в текст в &3.
Циклическая обработка по группам МЦ и счетам субсчетам нужна обязательно.
А почему так сложно?
Отнудь.
В настройке может и сложнее, но при появлении новых групп нет необходимости доделывать все ТХО где участвует группа МЦ. Нужно просто у каждой новой группы, задать соответствующий субсчет.
Да и работать такая ТХО будет значительно быстрее.
Видел ТХО с 1000 фильтров по NP_. То есть всегда расчитывается 1000 шаблонов, а с новыми режимами достатчно 1 ТХО с 1 шаблоном.

Добавлено: 11 дек 2006, 11:54
Seybukan
Может, потому что &3 вынимает NREC, а мы пытаемся использовать его в &4 как значение?
Не особенно понял какой там NRec.
Можно просто сделать 01,02,03,...09

Добавлено: 11 дек 2006, 12:20
sim
Арибут должен быть String
Спасибо за наводку! Именно в этом и была проблема. Не работало из-за того, что использовали тип атрибута "ссылка" (на пользовательскую аналитику "Счета/субсчета"). Посчитали, что так будет и красивее, и удобнее (выбор из имеющихся значений).
Теперь поменяли тип атрибута на "стринг", завели значения - и полный орднунг.
P.S. Циклическая обработка по группам МЦ в принципе не обязательна.

Добавлено: 11 дек 2006, 12:42
sim
Ну, круто...
Ваще :grin:

Кстати, этим же патчем добавили возможность складывать ТХО-шки в архив. Тоже класс. До чего уж надоели эти кучи "прошлогоднего мусора", теперь их можно с глаз долой убрать.

Добавлено: 11 дек 2006, 14:04
Seybukan
В 8.10 есть атрибут на счет субсчет непосредственно.
Там и настроете красивее.
Щас тока через стринг.

Добавлено: 11 дек 2006, 16:16
maikl
Sim
Напиши как выглядит алгоритм, а то так непонятно.

Добавлено: 11 дек 2006, 16:44
sim
Хозяйственный документ : Накладная на прием МЦ

ТХО: Поступление ТМЦ (авторазноска по субсчетам 10 счета)
Регистр учета: План счетов 2001г
Номер по порядку: 1 Процент: 100.0000 Входимость: +
ДЕБЕТ : 10.<режим 3>
Подразделение: <авто - Подразделения>
КРЕДИТ: 60.<нет>
КАУ 1 : <авто - Организации>
Подразделение: <авто - Подразделения>
Содержание проводки:
Алгоритм в НДЕ: &NP_[Рез:БезНалогов]
Алгоритм в валюте <по настройке>:
Алгоритм количество:
Фильтр для циклической обработки:
Циклическая обработка: <Материальные ценности>
Результат: положительная, при смене знака изменить корреспонденцию счетов
Сумму в проводке: не конвертировать
Алгоритмы для расчета сумм проводки:
1: &1 := &NP_[Рез:БезНалогов] //
2: &2 := &KAU[Кау:8] //Группа МЦ
3: &3 := sTXOGetExtAttr('GROUPMC','Субсчет 10 счета',&2) //Внешний атрибут Группы МЦ (субсчет 10-го счета)
4: &4 := TxoSetSchet(163,'10',&3,FALSE) //

Добавлено: 11 дек 2006, 16:51
maikl
Где ты читал про TxoSetSchet ?
и про режимы?
Спасибо

Добавлено: 11 дек 2006, 17:12
sim
В описании к патчу TXO05
(цитирую):

Реализованы функции TxoSetSchetNrec(<режим>, <Nrec
счета/субсчета>), TxoSetSchet(<режим>, <счет>, <субсчет>,
<флаг плана счетов>) аналогичные TxoSetKau.

TxoSetSchetNrec(<режим>, <Nrec счета/субсчета>) - с
помощью данной функции можно заполнить значение счета в
проводках по результатам расчета формул ТХО.

Назначение параметров:

<режим> - режим счета который нужно потом выбрать в
проводке по [Shift+F3] желательно указывать один и
незадействованных режимов из <режим 0 - аналитика>-<режим 9
- аналитика>

<Nrec счета/субсчета> - Nrec счета, который получен с
помошью формул ТХО или явно указан

3) TxoSetSchet(<режим>, <счет>, <субсчет>, <флаг плана
счетов>) - с помощью данной функции можно заполнить значение
счета в проводках по результатам расчета формул ТХО.

Назначение параметров:

<режим> - режим счета который нужно потом выбрать в
проводке по [Shift+F3] желательно указывать один и
незадействованных режимов из <режим 0 - аналитика>-<режим 9
- аналитика>

<счет> - значение счета, которое получено с помошью
формул ТХО или указано явно. Данное значение может быть
указано в двух представлениях Счет или Код плана счетов +
Счет(идет по умолчанию в мастере формул). При этом значение
параметра <флаг плана счетов> должно быть соответственно
выставлено в False для первого случая и True для второго.

<субсчет> - значение субсчета, которое получено с
помошью формул ТХО или указано явно.

<флаг плана счетов> - флаг плана счетов.

Пример настройки ТХО:

Хозяйственный документ : Бухгалтерская справка

ТХО: пример как получить счет в проводке в бухсправке
Регистр учета: Стандартный план счетов
Номер по порядку: 1 Процент: 100.0000 Входимость: +
ДЕБЕТ : <режим 3>
Подразделение: <авто - Подразделения>
КРЕДИТ: 63.<нет>
Подразделение: <авто - Подразделения>
Содержание проводки:
Алгоритм в НДЕ: &sum
Алгоритм в валюте <по настройке>:
Алгоритм количество:
Фильтр для циклической обработки:
Циклическая обработка:
Результат: положительная, при смене знака изменить
корреспонденцию счетов
Сумму в проводке: не конвертировать
Алгоритмы для расчета сумм проводки:

1: &1 := TxoSetSchet(163,'10','',false) //в <режим 3> записать
счет 10

Добавлено: 11 дек 2006, 17:37
maikl
Спасибо, буду изучать. Как то сразу логика не прослеживается. Видно я дубовый.

Добавлено: 11 дек 2006, 20:39
sim
Да нет там ничего такого. На группы МЦ навесь внешние атрибуты, назови как нравится (в моем примере это "Субсчета 10 счета). Затем пробегись по группам МЦ, и во внешних атрибутах значения поставь ровно такие, как у тебя называются субсчета (01,02 и т.д.)
А остальное здесь возьми, из шпаргалки (желательно не впрямую сдувать, а хотя бы мастер формул использовать, лучше поймешь что и как).
Заработать должно сразу. Покрутишь, повертишь - поймешь как работает. Включи отладочный протокол, в нем видно какие значения откуда берутся.

Добавлено: 13 дек 2006, 08:48
maikl
Нет так в принципе все понятно. Только 2 вопроса:
1. В накладной может присутствовать МЦ (будущая ОС), не из 10 счета. Как в этом случае сстроить алгоритм?

2. TxoSetSchetNrec - Заполнить значение Nrec счета ТХО
TxoSetSchet - Заполнить Nrec счета ТХО по счету и субсчету
TxoSetDate - Заполнить значение даты

Как перевести это на русский язык))):, чтобы было понятно сразу.
Что значит заполнить? Я так понимаю, что в результате выполнения этой ф-ии происходит изменение nrec в ссылке на .......? Или я не прав?
Кстати, чтобы это использовать еще на этапе проектирования нажо было иметь ввиду внеш. актрибуты в МЦ или ты их стал использовать позже, когда появились функции?
Спасиб за помощь.