|
|
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
Добрый день! Снова прошу помощи. Вернее идеи, как лучше организовать. Есть документ "ОплатаОтчетовКомиссионера". В табличной части находятся отчеты комиссионера, которые оплачиваются. Так вот, в этом документе происходит еще расчет пени. Одна из колонок документа имеет кнопку выбора, при нажатии на которую происходит расчет пени. Расчет пени надо показать на закладке "Пени" этого же документа. Т.е. получается, что на каждую строку табличной части документа приходится еще таблица с расчетом пени. Через какой объект это лучше организовать. Хотела использовать метод ЗначениеВСтрокуВнутр(), но табличная часть документа не может иметь неограниченную длину. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 10:30 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
HSV, лучше чем через связанный справочник или подчинённый документ (без движенй - только табличная часть и печ. форма если необходимо) я вам ничего посоветовать не могу... ну нет механизма множественных табличных частей в 7ке ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 10:35 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
авторЗначениеВСтрокуВнутр() с сохранением значений "СохранитьЗначение()" (между сенасами) используйте для хранения временных значений и никогда для критичных и тем более постоянных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 10:43 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
Last1Cmen, Спасибо! У меня были такие мысли, просто не очень улыбается плодить документы, т.к. получается на каждую строку создание отдельного документа, но видимо друго выбора нет. Не совсем нравится вариант со справочником, скорее буду работать с подчиненным документом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 10:51 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
HSV, Зачем тебе документ подчиненный документ? Будет он у тебя в итоге болтаться в общем журнале документов, оно тебе надо? Лучше делай через справочник - с привязкой по ключу к строке табличной части документа. Вообще в принципе справочник в 7.7 можно использовать как таблицу которую можно использовать как тебе угодно - я допустим использовал справочник подобно регистру сведений в восьмерке, хранил в нем цены с их историей, без использования периодических реквизитов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:00 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
vitkhv, А можно чуть подробнее? Т.е. Вы предлагаете использовать идентификатор табличной части документа, как ключ в справочнике? А если мы удаляем пени? Или пересчитываем их? Надо будет выбирать в справочнике все строки с этим ключом, удалять их и заново вводить? Может я что то не так понимаю? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:23 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
со справочником сложнее работать (и в плане контроля уникальностей и модификации да и запросами его обрабатывать непросто), единственное где я применял именно справочник так это для привязок по текущим остаткам предопределённых объектов учета на документ (как пример сам документ - "сменный отчет" заправки а инфа в справочнике - остатки по пластиковым талонам) - там можно было т.к. никаких расчетных частей нет - только инфа по остаткам а у вас расчет таки будет... кстати а почему по каждой строке хотите по документу плодить ? связать по номеру строки (или объекту учета - док-ту взаиморасчетов) чтобы в подчинённом док-те использовать все объекты никак ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:24 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
авторНадо будет выбирать в справочнике все строки с этим ключом, удалять их и заново вводить? да... это и есть сложности таких методов... модификация панимаишь (в зависимости от необходимости или просто удалять и перезаполнять или модифицировать существующие) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:26 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
Last1Cmen, Если делать все одним документом, тогда на закладке "Пеня" придется делать выбор табличной части документа РасчетПени только для спозиционированного объекта и считать для него итоги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:35 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
HSV, да... можно нарисовать таблицу в которой выводить построчно эти пени по каждой из строк в ТЧ док-та (а сами данные хранить в док-те) нет вы не поймите меня неправильно я не наставиваю именно на варианте с док-том... справочники тоже имеют право рассматриваться как вариант решения... можете и так попробовать и так... как удобнее будет так и пробуйте ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:39 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
Last1Cmen, В чем сложность запросов к справочникам vs документы? Тоже самое. В плане контроля уникальностей и модификации тут вообще проблем нет. Только доп. плюс у тебя по сути служебная таблица с пеней не будет болтаться в общем журнале документов. Справочник ТабличнаяЧастьДокументаОснованиеПени: Реквизит - ДокументОснование - ссылка на документ в которому нужна вторая таб часть. Реквизит - ОтчетКоммисионера с индексом - ссылка на документ отчет коммисионера. Выборка из справочника: Функция НайтиПени(ВыбОтчетКоммисионера,ВыбДокВладелецТаблЧасти) СпрПени = СоздатьОбъект("Справочник.ТабличнаяЧастьДокументаОснованиеПени"); СпрПени.ВыбратьЭлементыПоРеквизиту("ОтчетКоммисионера",ВыбОтчетКоммисионера); Пока СпрПени.ПолучитьЭлемент()=1 Цикл Если ВыбДокВладелецТаблЧасти = СпрПени.ДокументОснование Тогда <необходимые действия> КонецЕсли; КонецЦикла; Причем я в подобный справочник записывал и удалял из него в процедурах ОбработкаПроведения() и ОбработкаУдаленияПроведения() Работало все без проблем и очень быстро. Причем прямые запросы данные выборки практически не ускоряли. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:40 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
vitkhv, я не против абсолютно и сейчас не готов вам ответить аргументированно почему мне решения со справочниками на тот момент не подходили пс.. вспомнил одно... для модификации удобно было использовать выгрузить/загрузить табличные части напрямую в подчинённые документы... и работало быстрее понятное дело может погодя ещё что-то вспомню (дааавно было уже это уж простите) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:45 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
Last1Cmen, Но ведь тогда получается тоже самое, что и со справочником. Т.е. при пересчете пени, надо будет удалять из документа все строки редактируемого объекта и вводить новые. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:46 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
HSV, Да еще для справочника - дли кода и длина наименования сделать нулевыми. Навесить индекс на реквизит ДокументОснование справочника ТабличнаяЧастьДокументаОснованиеПени. Тогда удаление из справочника при распроведении будет выглядеть примерно так: Функция УдалитьПени(ВыбДокВладелецТаблЧасти); СпрПени = СоздатьОбъект("Справочник.ТабличнаяЧастьДокументаОснованиеПени"); СпрПени.ВыбратьЭлементыПоРеквизиту("ДокументОснование",ВыбДокВладелецТаблЧасти); Пока СпрПени.ПолучитьЭлемент()=1 Цикл <необходимые действия> КонецЦикла; КонецФункции КонецФункции; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:50 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
авторВ чем сложность запросов к справочникам vs документы? у док-тов больше методов и возможностей отбора (журналы и графы например или выборки по перодам) ещё раз повторю я не настаиваю на документах... автор сам должен принять решение на основании того где и как должны отображаться в дальнейшём эти данные в учете... как просматриваться и чем редактироваться и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:50 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
HSVLast1Cmen, Но ведь тогда получается тоже самое, что и со справочником. Т.е. при пересчете пени, надо будет удалять из документа все строки редактируемого объекта и вводить новые. Да вы правы и обработчики получаться сложнее чем со справочником. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:51 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
авторТ.е. при пересчете пени, надо будет удалять из документа все строки редактируемого объекта и вводить новые. загрузитьтабличнуючасть() отработает гораздо быстрее физического удаления элементов справочника авторДа еще для справочника - дли кода и длина наименования сделать нулевыми. Навесить индекс на реквизит ДокументОснование справочника ТабличнаяЧастьДокументаОснованиеПени. ещё можно иерархию использовать - группа - содержит ссылку на документ - записи - элементы аналог ТЧ входящие в группу... проще будет потом искать баги и отлаживать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:54 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
Last1Cmen, vitkhv, Большое спасибо за помощь! Направление уже понятно. Да по сути и алгоритм Вы мне уже написали :) Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:59 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
Last1CmenавторВ чем сложность запросов к справочникам vs документы? у док-тов больше методов и возможностей отбора (журналы и графы например или выборки по перодам) ещё раз повторю я не настаиваю на документах... автор сам должен принять решение на основании того где и как должны отображаться в дальнейшём эти данные в учете... как просматриваться и чем редактироваться и т.д. Журналы и графы например или выборки по перодам спокойно получаются по документу владьльцу второй табличной части - через реквизит справочника ДокументОснование. Причем везде и всюду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 11:59 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
vitkhv, да... если по периодам совпадают ;) иначе городить огород с доп. реквизитами типа дата в справочнике да и постоянно джойнить несколько таблиц вместо выборки по одной сами знаете чем грозит и в плане скорости и в плане поддержки давайте предоставим автору самому выбрать подходящее решение... варианты с плюсами и минусами уже перечислены больше некуда :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 12:04 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
vitkhvЖурналы и графы например или выборки по перодам спокойно получаются по документу владьльцу второй табличной части - через реквизит справочника ДокументОснование. Причем везде и всюду. vitkhv, Мне не нужно будет делать выборки по расчету пени. Это чисто информативная часть, чтобы было видно откуда взялась сумма, и при желании подредактировать расчет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 12:06 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
Last1CmenавторТ.е. при пересчете пени, надо будет удалять из документа все строки редактируемого объекта и вводить новые. загрузитьтабличнуючасть() отработает гораздо быстрее физического удаления элементов справочника Причем здесь ЗагрузитьТабличную часть и физическое удаление элементов - не вижу связи. ЗагрузитьТабличнуюЧасть можно расматривать только в контексте с записью элементов в справочник. Но тогда надо расматривать ЗагрузитьТабличнуюЧасть + время записи самого документа. И не намного это будет быстрее. А в итоге гемора меньше с обработчиками. + Сам документ не будет болтаться в общем журнале, а я думаю, что это жирный +. Автор, Еще забыл в самый главный реквизит в этом справочнике - Пеня: ТипЗначения Число :) Еще метод хранения данных в таблицах БД со справочником будет по сути (за некоторым исключением) повторять то как 1С хранит данные в таблицах БД для своих табличных частей, для документов одного вида. Ну и удачи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 12:07 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
vitkhv, да для текущей задачи наверное достаточно справочника авторРасчет пени надо показать на закладке "Пени" этого же документа закладка - не юзабельно т.к. неудобно переключаться постоянно... лучше если позволяет место отрисовать таблицу значений рядом с ТЧ док-та и при активизации строки перезаполнять эту таблицу (я надеюсь данных расчета не сильно много а то будет сильно грузить систему и в этом случае луше вариант с закладкой тогда не сильно будет этого видно из-за необходиомсти переключения между закладками) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 12:14 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
HSVvitkhvЖурналы и графы например или выборки по перодам спокойно получаются по документу владьльцу второй табличной части - через реквизит справочника ДокументОснование. Причем везде и всюду. vitkhv, Мне не нужно будет делать выборки по расчету пени. Это чисто информативная часть, чтобы было видно откуда взялась сумма, и при желании подредактировать расчет. Ну если выборки не нужны - тогда тем проще все будет. Функции по Удалению элементов я вам описал - ее надо использовать при перепроведении и отмене проведения документа. Запись в этот справочник еще проще - Функция СоздатьПени(ВыбОтчетКоммисионера,ВыбДокВладелецТаблЧасти,Пеня) СпрПени = СоздатьОбъект("Справочник.ТабличнаяЧастьДокументаОснованиеПени"); СпрПени.Новый(); СпрПени.ДокументОснование = ВыбДокВладелецТаблЧасти; СпрПени.ОтчетКоммисионера = ВыбОтчетКоммисионера; СпрПени.Пеня = Пеня; СпрПени.Записать(); Возврат СпрПени.ТекущийЭлемент(); КонецФункции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 12:14 |
|
||
|
1С 7.7 - Таблица документа
|
|||
|---|---|---|---|
|
#18+
Last1Cmenvitkhv, да... если по периодам совпадают ;) иначе городить огород с доп. реквизитами типа дата в справочнике А как может вторая табличная часть документа отличаться по периодам от самого документа? Last1Cmen да и постоянно джойнить несколько таблиц вместо выборки по одной сами знаете чем грозит и в плане скорости и в плане поддержки И чем же таким грозят джоины, если структура таблиц и индексов у вас грамотно простроеннна? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.11.2009, 12:17 |
|
||
|
|

start [/forum/topic.php?fid=28&msg=36325433&tid=1523027]: |
0ms |
get settings: |
11ms |
get forum list: |
19ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
203ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 256ms |
| total: | 600ms |

| 0 / 0 |
