Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / 1С 7.7 - Таблица документа / 25 сообщений из 97, страница 1 из 4
23.11.2009, 10:30
    #36325188
HSV
HSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
Добрый день!
Снова прошу помощи. Вернее идеи, как лучше организовать.
Есть документ "ОплатаОтчетовКомиссионера". В табличной части находятся отчеты комиссионера, которые оплачиваются. Так вот, в этом документе происходит еще расчет пени. Одна из колонок документа имеет кнопку выбора, при нажатии на которую происходит расчет пени. Расчет пени надо показать на закладке "Пени" этого же документа. Т.е. получается, что на каждую строку табличной части документа приходится еще таблица с расчетом пени. Через какой объект это лучше организовать. Хотела использовать метод ЗначениеВСтрокуВнутр(), но табличная часть документа не может иметь неограниченную длину.
...
Рейтинг: 0 / 0
23.11.2009, 10:35
    #36325200
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
HSV, лучше чем через связанный справочник или подчинённый документ (без движенй - только табличная часть и печ. форма если необходимо) я вам ничего посоветовать не могу... ну нет механизма множественных табличных частей в 7ке
...
Рейтинг: 0 / 0
23.11.2009, 10:43
    #36325222
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
авторЗначениеВСтрокуВнутр() с сохранением значений "СохранитьЗначение()" (между сенасами) используйте для хранения временных значений и никогда для критичных и тем более постоянных
...
Рейтинг: 0 / 0
23.11.2009, 10:51
    #36325238
HSV
HSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
Last1Cmen,
Спасибо! У меня были такие мысли, просто не очень улыбается плодить документы, т.к. получается на каждую строку создание отдельного документа, но видимо друго выбора нет. Не совсем нравится вариант со справочником, скорее буду работать с подчиненным документом.
...
Рейтинг: 0 / 0
23.11.2009, 11:00
    #36325267
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
HSV,
Зачем тебе документ подчиненный документ? Будет он у тебя в итоге болтаться в общем журнале документов, оно тебе надо?
Лучше делай через справочник - с привязкой по ключу к строке табличной части документа.
Вообще в принципе справочник в 7.7 можно использовать как таблицу которую можно использовать как тебе угодно - я допустим использовал справочник подобно регистру сведений в восьмерке, хранил в нем цены с их историей, без использования периодических реквизитов.
...
Рейтинг: 0 / 0
23.11.2009, 11:23
    #36325309
HSV
HSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
vitkhv,
А можно чуть подробнее? Т.е. Вы предлагаете использовать идентификатор табличной части документа, как ключ в справочнике? А если мы удаляем пени? Или пересчитываем их? Надо будет выбирать в справочнике все строки с этим ключом, удалять их и заново вводить? Может я что то не так понимаю?
...
Рейтинг: 0 / 0
23.11.2009, 11:24
    #36325314
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
со справочником сложнее работать (и в плане контроля уникальностей и модификации да и запросами его обрабатывать непросто), единственное где я применял именно справочник так это для привязок по текущим остаткам предопределённых объектов учета на документ (как пример сам документ - "сменный отчет" заправки а инфа в справочнике - остатки по пластиковым талонам) - там можно было т.к. никаких расчетных частей нет - только инфа по остаткам

а у вас расчет таки будет... кстати а почему по каждой строке хотите по документу плодить ? связать по номеру строки (или объекту учета - док-ту взаиморасчетов) чтобы в подчинённом док-те использовать все объекты никак ?
...
Рейтинг: 0 / 0
23.11.2009, 11:26
    #36325324
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
авторНадо будет выбирать в справочнике все строки с этим ключом, удалять их и заново вводить?

да... это и есть сложности таких методов... модификация панимаишь (в зависимости от необходимости или просто удалять и перезаполнять или модифицировать существующие)
...
Рейтинг: 0 / 0
23.11.2009, 11:35
    #36325345
HSV
HSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
Last1Cmen,
Если делать все одним документом, тогда на закладке "Пеня" придется делать выбор табличной части документа РасчетПени только для спозиционированного объекта и считать для него итоги.
...
Рейтинг: 0 / 0
23.11.2009, 11:39
    #36325360
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
HSV, да... можно нарисовать таблицу в которой выводить построчно эти пени по каждой из строк в ТЧ док-та (а сами данные хранить в док-те)

нет вы не поймите меня неправильно я не наставиваю именно на варианте с док-том... справочники тоже имеют право рассматриваться как вариант решения... можете и так попробовать и так... как удобнее будет так и пробуйте
...
Рейтинг: 0 / 0
23.11.2009, 11:40
    #36325361
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
Last1Cmen,
В чем сложность запросов к справочникам vs документы? Тоже самое.
В плане контроля уникальностей и модификации тут вообще проблем нет.

Только доп. плюс у тебя по сути служебная таблица с пеней не будет болтаться в общем журнале документов.

Справочник ТабличнаяЧастьДокументаОснованиеПени:
Реквизит - ДокументОснование - ссылка на документ в которому нужна вторая таб часть.
Реквизит - ОтчетКоммисионера с индексом - ссылка на документ отчет коммисионера.

Выборка из справочника:

Функция НайтиПени(ВыбОтчетКоммисионера,ВыбДокВладелецТаблЧасти)
СпрПени = СоздатьОбъект("Справочник.ТабличнаяЧастьДокументаОснованиеПени");
СпрПени.ВыбратьЭлементыПоРеквизиту("ОтчетКоммисионера",ВыбОтчетКоммисионера);
Пока СпрПени.ПолучитьЭлемент()=1 Цикл
Если ВыбДокВладелецТаблЧасти = СпрПени.ДокументОснование Тогда
<необходимые действия>
КонецЕсли;
КонецЦикла;

Причем я в подобный справочник записывал и удалял из него в процедурах ОбработкаПроведения() и ОбработкаУдаленияПроведения()
Работало все без проблем и очень быстро. Причем прямые запросы данные выборки практически не ускоряли.
...
Рейтинг: 0 / 0
23.11.2009, 11:45
    #36325378
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
vitkhv, я не против абсолютно и сейчас не готов вам ответить аргументированно почему мне решения со справочниками на тот момент не подходили

пс.. вспомнил одно... для модификации удобно было использовать выгрузить/загрузить табличные части напрямую в подчинённые документы... и работало быстрее понятное дело

может погодя ещё что-то вспомню (дааавно было уже это уж простите)
...
Рейтинг: 0 / 0
23.11.2009, 11:46
    #36325381
HSV
HSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
Last1Cmen,
Но ведь тогда получается тоже самое, что и со справочником. Т.е. при пересчете пени, надо будет удалять из документа все строки редактируемого объекта и вводить новые.
...
Рейтинг: 0 / 0
23.11.2009, 11:50
    #36325396
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
HSV,
Да еще для справочника - дли кода и длина наименования сделать нулевыми.
Навесить индекс на реквизит ДокументОснование справочника ТабличнаяЧастьДокументаОснованиеПени.

Тогда удаление из справочника при распроведении будет выглядеть примерно так:

Функция УдалитьПени(ВыбДокВладелецТаблЧасти);

СпрПени = СоздатьОбъект("Справочник.ТабличнаяЧастьДокументаОснованиеПени");
СпрПени.ВыбратьЭлементыПоРеквизиту("ДокументОснование",ВыбДокВладелецТаблЧасти);
Пока СпрПени.ПолучитьЭлемент()=1 Цикл

<необходимые действия>

КонецЦикла;
КонецФункции

КонецФункции;
...
Рейтинг: 0 / 0
23.11.2009, 11:50
    #36325398
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
авторВ чем сложность запросов к справочникам vs документы?

у док-тов больше методов и возможностей отбора (журналы и графы например или выборки по перодам)

ещё раз повторю я не настаиваю на документах... автор сам должен принять решение на основании того где и как должны отображаться в дальнейшём эти данные в учете... как просматриваться и чем редактироваться и т.д.
...
Рейтинг: 0 / 0
23.11.2009, 11:51
    #36325401
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
HSVLast1Cmen,
Но ведь тогда получается тоже самое, что и со справочником. Т.е. при пересчете пени, надо будет удалять из документа все строки редактируемого объекта и вводить новые.

Да вы правы и обработчики получаться сложнее чем со справочником.
...
Рейтинг: 0 / 0
23.11.2009, 11:54
    #36325408
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
авторТ.е. при пересчете пени, надо будет удалять из документа все строки редактируемого объекта и вводить новые.

загрузитьтабличнуючасть() отработает гораздо быстрее физического удаления элементов справочника

авторДа еще для справочника - дли кода и длина наименования сделать нулевыми.
Навесить индекс на реквизит ДокументОснование справочника ТабличнаяЧастьДокументаОснованиеПени.

ещё можно иерархию использовать - группа - содержит ссылку на документ - записи - элементы аналог ТЧ входящие в группу... проще будет потом искать баги и отлаживать
...
Рейтинг: 0 / 0
23.11.2009, 11:59
    #36325421
HSV
HSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
Last1Cmen, vitkhv,
Большое спасибо за помощь! Направление уже понятно. Да по сути и алгоритм Вы мне уже написали :) Спасибо!
...
Рейтинг: 0 / 0
23.11.2009, 11:59
    #36325422
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
Last1CmenавторВ чем сложность запросов к справочникам vs документы?

у док-тов больше методов и возможностей отбора (журналы и графы например или выборки по перодам)

ещё раз повторю я не настаиваю на документах... автор сам должен принять решение на основании того где и как должны отображаться в дальнейшём эти данные в учете... как просматриваться и чем редактироваться и т.д.

Журналы и графы например или выборки по перодам спокойно получаются по документу владьльцу второй табличной части - через реквизит справочника ДокументОснование. Причем везде и всюду.
...
Рейтинг: 0 / 0
23.11.2009, 12:04
    #36325433
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
vitkhv, да... если по периодам совпадают ;) иначе городить огород с доп. реквизитами типа дата в справочнике

да и постоянно джойнить несколько таблиц вместо выборки по одной сами знаете чем грозит и в плане скорости и в плане поддержки

давайте предоставим автору самому выбрать подходящее решение... варианты с плюсами и минусами уже перечислены больше некуда :)
...
Рейтинг: 0 / 0
23.11.2009, 12:06
    #36325438
HSV
HSV
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
vitkhvЖурналы и графы например или выборки по перодам спокойно получаются по документу владьльцу второй табличной части - через реквизит справочника ДокументОснование. Причем везде и всюду.
vitkhv,

Мне не нужно будет делать выборки по расчету пени. Это чисто информативная часть, чтобы было видно откуда взялась сумма, и при желании подредактировать расчет.
...
Рейтинг: 0 / 0
23.11.2009, 12:07
    #36325446
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
Last1CmenавторТ.е. при пересчете пени, надо будет удалять из документа все строки редактируемого объекта и вводить новые.

загрузитьтабличнуючасть() отработает гораздо быстрее физического удаления элементов справочника

Причем здесь ЗагрузитьТабличную часть и физическое удаление элементов - не вижу связи.

ЗагрузитьТабличнуюЧасть можно расматривать только в контексте с записью элементов в справочник. Но тогда надо расматривать ЗагрузитьТабличнуюЧасть + время записи самого документа. И не намного это будет быстрее. А в итоге гемора меньше с обработчиками. + Сам документ не будет болтаться в общем журнале, а я думаю, что это жирный +.

Автор,
Еще забыл в самый главный реквизит в этом справочнике - Пеня: ТипЗначения Число :)

Еще метод хранения данных в таблицах БД со справочником будет по сути (за некоторым исключением) повторять то как 1С хранит данные в таблицах БД для своих табличных частей, для документов одного вида.
Ну и удачи.
...
Рейтинг: 0 / 0
23.11.2009, 12:14
    #36325466
Last1Cmen
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
vitkhv, да для текущей задачи наверное достаточно справочника


авторРасчет пени надо показать на закладке "Пени" этого же документа

закладка - не юзабельно т.к. неудобно переключаться постоянно... лучше если позволяет место отрисовать таблицу значений рядом с ТЧ док-та и при активизации строки перезаполнять эту таблицу (я надеюсь данных расчета не сильно много а то будет сильно грузить систему и в этом случае луше вариант с закладкой тогда не сильно будет этого видно из-за необходиомсти переключения между закладками)
...
Рейтинг: 0 / 0
23.11.2009, 12:14
    #36325467
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
HSVvitkhvЖурналы и графы например или выборки по перодам спокойно получаются по документу владьльцу второй табличной части - через реквизит справочника ДокументОснование. Причем везде и всюду.
vitkhv,

Мне не нужно будет делать выборки по расчету пени. Это чисто информативная часть, чтобы было видно откуда взялась сумма, и при желании подредактировать расчет.

Ну если выборки не нужны - тогда тем проще все будет.
Функции по Удалению элементов я вам описал - ее надо использовать при перепроведении и отмене проведения документа.

Запись в этот справочник еще проще -
Функция СоздатьПени(ВыбОтчетКоммисионера,ВыбДокВладелецТаблЧасти,Пеня)
СпрПени = СоздатьОбъект("Справочник.ТабличнаяЧастьДокументаОснованиеПени");
СпрПени.Новый();
СпрПени.ДокументОснование = ВыбДокВладелецТаблЧасти;
СпрПени.ОтчетКоммисионера = ВыбОтчетКоммисионера;
СпрПени.Пеня = Пеня;
СпрПени.Записать();
Возврат СпрПени.ТекущийЭлемент();
КонецФункции
...
Рейтинг: 0 / 0
23.11.2009, 12:17
    #36325478
vitkhv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
1С 7.7 - Таблица документа
Last1Cmenvitkhv, да... если по периодам совпадают ;) иначе городить огород с доп. реквизитами типа дата в справочнике

А как может вторая табличная часть документа отличаться по периодам от самого документа?

Last1Cmen
да и постоянно джойнить несколько таблиц вместо выборки по одной сами знаете чем грозит и в плане скорости и в плане поддержки


И чем же таким грозят джоины, если структура таблиц и индексов у вас грамотно простроеннна?
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / 1С 7.7 - Таблица документа / 25 сообщений из 97, страница 1 из 4
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]