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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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


И чем же таким грозят джоины, если структура таблиц и индексов у вас грамотно простроеннна?
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325487
HSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HSV
Гость
Last1Cmenзакладка - не юзабельно т.к. неудобно переключаться постоянно... лучше если позволяет место отрисовать таблицу значений рядом с ТЧ док-та и при активизации строки перезаполнять эту таблицу (я надеюсь данных расчета не сильно много а то будет сильно грузить систему и в этом случае луше вариант с закладкой тогда не сильно будет этого видно из-за необходиомсти переключения между закладками)
К сожалению место не позволяет, т.к. расчет пени - это не единственное предназначение документа. И потом, не так важен расчет, как сама СуммаПени. Ее я собираюсь вывести в основной таблице. А если уж надо будет посмотреть внутренность этой суммы, то только тогда будет нажиматься вкладка.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325494
HSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HSV
Гость
vitkhv,

Спасибо :)
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325536
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА как может вторая табличная часть документа отличаться по периодам от самого документа?

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

а по-поводу разнесения по таблицам так спор о падении скорости я думаю не уместен... другое дело дело насколько это критично... думаю не сильно
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325548
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmen[quot автор]А как может вторая табличная часть документа отличаться по периодам от самого документа?

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

И что? Напоминаю у меня по подобной схеме работал механизм хранения цен с их периодами.

Last1Cmen
а по-поводу разнесения по таблицам так спор о падении скорости я думаю не уместен... другое дело дело насколько это критично... думаю не сильно

Наверное спор и не уместен - только скорость записи в справочник медленней особо не будет - т.к. документ надо в 3 таблицы записать!!!!
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325595
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
автортолько скорость записи в справочник медленней особо не будет - т.к. документ надо в 3 таблицы записать!!!!

фух... прежде чем писать в справочник его надо удалить (соотв. элементы) или модифицировать (процедура поиска тоже тормозом будет)... с ТЧ достаточно перезаполнить

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

так и есть

попробуйте "перезалить" ТЧ с проведением документа и "удалить\записать" соответствующее количество элементов справочника без прямого обращения к БД... только средствами 1це
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325627
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmen
но я не это имел ввиду когда говорил про таблицы а про то что далее в запросах вместо того чтобы вытянуть всё из одной (в итоге трех если про прямой скл) таблиц нам ещё надо будет джойнить для вытягивания доп. параметров (как-то дата, подотчетник и т.д.) что в конечном итоге приведёт к тому же самому что и при запросах к документам

А как вы думаете в восьмерке вторую табличную часть джоинить не надо?
Или в данном справочнике нет связи с документом - есть ДокументОснование с индексом по полю.
А вашем примере с документом - джоинить меньше надо? Да больше надо джоинить будет. И хранить тоже самое в еще большем количестве таблиц, чем если это будет один справочник.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325651
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1CmenавторЕще раз юзаем профайлер хоть вы и говорите, что у вас на него алергия!

так и есть

попробуйте "перезалить" ТЧ с проведением документа и "удалить\записать" соответствующее количество элементов справочника без прямого обращения к БД... только средствами 1це

Зачем пробывать я сотни раз пробывал - не делает 1С UPDATE, а делает сначала DELETE, а потом INSERT.

Так, что вот этот ваш тезис
Last1Cmen
фух... прежде чем писать в справочник его надо удалить (соотв. элементы) или модифицировать (процедура поиска тоже тормозом будет)... с ТЧ достаточно перезаполнить

о точ, что ТЧ достаточно перезаполнить неверен в корне т.к. сначала надо перезаполнить, а потом перезаписать документ. А в момент перезаписи 1С вам и сделает сначала DELETE, а потом INSERT.
Поэтому если в табличной части документа к которому хотим пределать вторую табличную часть в виде справочника, будет более 500 строк - для справочника в котором храним вторую таб. часть, что запись, что удаление будут практически моментальными. Проверьте и убедитесь сами.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325658
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да тоже самое будет т.к. без выноса в отдельные реквизиты справочника каждого из доп. элементов (а в особенности если обращаться к дате документа и через неё уже к таблицам документа основания) будет нечто аналогичное по количеству объединений и те же самые обращения к таблице журнала док-тов и т.д.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325672
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПроверьте и убедитесь сами.

проверял в том то и дело (без прямого обращения) и перепроведение периода с механизмом справочников занимало куда больше времени

речь идет не о оптимизированном движке под прямую работу а стандартных методах которые почему-то при работе со справочниками довольно таки медленные

или вы предлагаете HSV освоить быстренько sql ?
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325679
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmen или модифицировать (процедура поиска тоже тормозом будет)...
Обратите внимание, что реквизиты справочника индесированные - поэтому поиск с использованием ВыбратьЭлементыПоРеквизиту() будет не медленней, чем НайтиПоКоду.
И я вас уверяю прямые запросы не обгоняют - ВыбратьЭлементыПоРеквизиту().
Попробуйте сами.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325686
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторИ я вас уверяю прямые запросы не обгоняют - ВыбратьЭлементыПоРеквизиту()

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

в разных случаях по разному... в этом случае имхо схемы равнозначны будут в работе но со справочниками будет немного попроще из-за простой структуры хранения данных (а не из-за сложности документальной схемы)
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325732
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1CmenавторИ я вас уверяю прямые запросы не обгоняют - ВыбратьЭлементыПоРеквизиту()

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

Опять же а как по вашему 8.1 хранит данные табличных частях? Да и таже 7.7 хранит данные табличной части документа одного вида в одной таблице и индекс там по IDDOC.
И проблем у меня с джоинами никогда не было, джоин с подзапросом TOP1 с сортировкой по полю с датой.
Ну если и говорим про штатные средства - а что 1С вам документ соединять в Запросе 1С будет быстрее чем справочник? Это с чего бы это? Справочник хранится в таких же таблицах, как и Табличная часть документа, для табличной части документа используется индекс IDDOC+LINE_NO_,
для справочника буде индекс по ДокументуОснованию т.е. фактически по IDDOC. И где же здесь для документа быстрее? За счет чего?
При этом для табличной части документа доп. индексов иметь нельзя в отличии от справочника.
Попробуйте проиндексируйте тоже поле ОтчетКоммисионера - не получиться. А для справочника можно. Уже только поэтому можно строить более быстрые выборки.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325758
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhv, вы предложили использовать для отбора данные из документа родителя (дата, подотчетник) а это те же обращения к таблицам шапок и ТЧ документа + к таблице журнала документа (вернее в обратном порядке) что аналогично тому если бы мы сразу работали с ними без справочника вот и всё
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325808
HSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HSV
Гость
vitkhv,
И еще вопрос. Что Вы имели в виду, говоря, что на реквизит ДокументОснование надо навесить индекс. Насколько я знаю средства 1С не позволяют создавать индексы по реквизитам. Значит ли это, что если поставить в реквизите Сортировку, то это приведет к созданию индекса, а соответственно и увеличению скорости выборках?
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325816
HSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HSV
Гость
vitkhv,
Хотя если реквизит имеет ссылку на документ, то Сортировка отсутствует
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325831
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmenvitkhv, вы предложили использовать для отбора данные из документа родителя (дата, подотчетник) а это те же обращения к таблицам шапок и ТЧ документа + к таблице журнала документа (вернее в обратном порядке) что аналогично тому если бы мы сразу работали с ними без справочника вот и всё

Хорошо вопрос к вам как будет быстрее?

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

SELECT ДокОснование.SP31,СправочникТабличнаяЧастьПени.SP67 AS ДокументПени
FROM DT45 ДокОснование
LEFT JOIN SC22 СправочникТабличнаяЧастьПени ON СправочникТабличнаяЧастьПени.SP345 = ДокОснование.IDDOC AND ДокОснование.SP67 = СправочникТабличнаяЧастьПени.SP12

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

SELECT ДокОснование.SP31,аблЧастьДокТабличнаяЧастьПени.SP53 AS ДокументПени
FROM DT45 ДокОснование
LEFT JOIN DH55 ДокТабличнаяЧастьПени ON ДокТабличнаяЧастьПени.SP15 = ДокументОснование.IDDOC
LEFT JOIN DT55 ТаблЧастьДокТабличнаяЧастьПени ON ДокТабличнаяЧастьПени.IDDOC = ДокТабличнаяЧастьПени.IDDOC = ТаблЧастьДокТабличнаяЧастьПени.IDDOC
AND ДокОснование.SP67 = ТаблЧастьДокТабличнаяЧастьПени.SP53

И 1С штатными средствами надо точно такие же соединения сделать.
А теперь скажите при какой организации второй табличной части будет быстрее при том, что поле ТаблЧастьДокТабличнаяЧастьПени.SP53 не индексированно и штатно без отключения верификации ты его не проиндексируеш? И скажите где соединений меньше?
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325875
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhv, ага - сферический конь у тя получился :)

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

я те грю что выродиться в одно и то же... а если без прямого скл то удаление/создание элементов справочника при перепроведении док-та будет медленнее чем перезаполнение и перезапись подчинённого док-та (это уже из практики) - почему ? объяснить не могу... я к сожалению не владею языком на котором пислась сама платформа чтобы это объяснить но результаты нагрузочных тестирований показывали что метод с док-том работает быстрее на большом количестве строк (элементов)... если их там с десяток то без разницы действительно
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325916
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSVvitkhv,
Хотя если реквизит имеет ссылку на документ, то Сортировка отсутствует
Отбор там надо ставить, какая может быть сортировка для ID документа? Документ в терминах 1С сортируется по дате, в поле нет даты поэтому нет и сортировки.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325930
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhvSELECT ДокОснование.SP31,аблЧастьДокТабличнаяЧастьПени.SP53 AS ДокументПени
FROM DT45 ДокОснование
LEFT JOIN DH55 ДокТабличнаяЧастьПени ON ДокТабличнаяЧастьПени.SP15 = ДокументОснование.IDDOC
LEFT JOIN DT55 ТаблЧастьДокТабличнаяЧастьПени ON ДокТабличнаяЧастьПени.IDDOC = ДокТабличнаяЧастьПени.IDDOC = ТаблЧастьДокТабличнаяЧастьПени.IDDOC
AND ДокОснование.SP67 = ТаблЧастьДокТабличнаяЧастьПени.SP53Штатно 1С так не умеет. :) Штатно оно сначала делает цикл по ВыбратьПодчиненныеДокументы(), потом только считывает шапку по НайтиДокумент(), и уже после - табличную часть :) Вторая табличная часть на справочнике будет тормозить только на "штатных средствах", и только если эта табличная часть большая, ибо нельзя штатно удалить несколько элементов, а автоматическое удаление движений в этом случае не работает. И я не уверен, что такая выборка возможна штатно, через, например, штатный СоздатьОбъект("Запрос").
Реквизиты справочника хотя бы позволяют построить "произвольные" индексы, в отличии от реквизитов документов, что ускорит выборку "нештатными" средствами. Хотя... Если работать нештатно - я предпочитаю делать дополнительные табличные части через внешние таблицы, с 1С связанные через FK с cascade update\delete. :)
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325990
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmenvitkhv, ага - сферический конь у тя получился :)

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


Медленней со справочниками точно не будет, даже если прийдется дополнительно лезть в другую таблицу для получения даты документа, ведь при использовании вашего метода прийдется всегда лезть в шапку документа, чтоб узнать Док. основание.
Ведь в методе со справочником всех остальных выборок где без развертки по периодам можно обойтись без лазиния в какие либо другие таблицы. Можете еще в справочник реквизит датаДок вставить тогда вообще никуда лазить помимо справочника не прийдется.
При этом в справочнике можно проиндексировать ЛЮБОЕ поле, попробуйте это сделать для Таблицы документа.......
Вот вам и сферичиский конь в пальто ;)
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36325999
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров Александр
Реквизиты справочника хотя бы позволяют построить "произвольные" индексы, в отличии от реквизитов документов, что ускорит выборку "нештатными" средствами.
Почему не штатными.
Еще раз повторюсь - метод справочника ВыбратьЭлементыПоРеквизиту() работает очень быстро... прямыми запросами мне его обогнать не удалось.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326044
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да можно всё что угодно вставить но речь то о штатных механизмах
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326084
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmenда можно всё что угодно вставить но речь то о штатных механизмах

А я и говорю про штатные механизмы. Только 1С чтоб к базе обратится надо ваш код отпарсить в код который понимает сервер. А к таблицам на сервере правила обращения одни и теже что для 1С с ее недозапросами, что какому любому другому приложению.
Поэтому если данные хранятся в куче таблиц то 1С и надо связать эту кучу таблиц между собой.
Правила связывание описанны в моем примере и кол во участвующих таблиц там же.
А Александр Егоров правильно говорит - что напрямую вы к данным не обратитесь вам сначала надо ВыбратьПодчиненные потом пробежаться по строкам ТЧ. В случае со справочниками такого делать не надо в случае использования метода ВыбратьЭлементыПоРеквизиту() - профайлер показывает правильную работу 1С с таблицами и индексами поэтому и быстро.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326100
Фотография MicMic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы еще подеритесь, горячие финские парни.
:)

1. По моему не принципиально справочником или документом.
В разных ситуациях и то и другое может оказаться медленным.
Но как правило медленнее - подчиненный документ, т.к. цепочка получаается - журн, црдок, ДШ, ДТ.
Лично я, как правило, предпочитаю справочники - различные производственные документы с несколькими табличными частями и делать несколько подчиненных доков, а если одна таб часть подчинена другной, а это в свою очередь, третьей и т.д., то совсем весело получается.
ИМХО.

2. При двух табличных частях, можно все затолкать и в ТЧ документа. А на экранную форму выводить в двух таблицах значений.

3. Чего делать не стоит, это хранение в текстовых полях. Контроль целостности теряется на уровнре системы, да иглюки бывают когда всяки "значения в строку внутр туда сюда таскаешь".
Тем более организовывать хранение в различных внешних файлах или таблицах sql (видел как то такое извращение).
Но в принципе в простых случаях можно и так, в строку. Например, список сотрудников, проводивших просчет по конкретной инвентарной ведомости, можно в строку загнать. Информация по сути нужна только для печати ведомости, ну и немного на время инвентаризации, а потом она никого не интересует. Да и инвентаризации если проводятся 1-2 раза в год ...

4.
vitkhvLast1Cmen,
Ну так что по вашем делает 1С когда любой объект перезаписывает?
Она его удаляет!
1С слова Update вообще не знает.
Еще раз юзаем профайлер хоть вы и говорите, что у вас на него алергия!

Если говорить о движениях регистра, то вы правы.
Документы и элементы справочника при перезаписи именно апдейтит, а не удаляет, потом создает заново.

5. А вообще, не понимаю зачем пени и их расчет в документ оплата отчетов комиссионера.
Делайте отдельный документ начисления пени. И все.
Как правило пени начисляют на некоторые просроченные суммы. Чаще всего начисления идут зависимо от дней просрочки и соответсвенно привязаны к документу создавшему задолженность.
Пени - увеличение задолженности и на них, могут быть начислены еще пени и т.д. (в зависимости от договора).

Не проще расчет/начисление пени просто напросто отдельно делать?

ИМХО.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326126
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот попробуйте перепровести месяц с 2мя док-тами (основным и подчинённым) и с 1 док-том плюс удалением/созданием новых элементов справочника ему принадлежащего штатно и увидите разницу

я её видел и справочники использовал только если их немного будет (порядка десятка) и модификации они подлежать вряд-ли будут
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326161
Фотография MicMic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmenвот попробуйте перепровести месяц с 2мя док-тами (основным и подчинённым) и с 1 док-том плюс удалением/созданием новых элементов справочника ему принадлежащего штатно и увидите разницу

я её видел и справочники использовал только если их немного будет (порядка десятка) и модификации они подлежать вряд-ли будут

Причем тут удалить/создать элементы справочника при проведении?!

В справочнике хранить табличные части человек собирается, а не заменять ими регистры/движения по ним. Справочники только читать нужно.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326163
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MicMicВы еще подеритесь, горячие финские парни.
:)

1. По моему не принципиально справочником или документом.
В разных ситуациях и то и другое может оказаться медленным.
Но как правило медленнее - подчиненный документ, т.к. цепочка получаается - журн, црдок, ДШ, ДТ.
Лично я, как правило, предпочитаю справочники - различные производственные документы с несколькими табличными частями и делать несколько подчиненных доков, а если одна таб часть подчинена другной, а это в свою очередь, третьей и т.д., то совсем весело получается.
ИМХО.

А помоему принципиально - не говорю, о том что быстрее будет со справочником так еще и эти вторые, третьи и т.д. табличные части будут болтаться в общем журнале документов.

MicMic
2. При двух табличных частях, можно все затолкать и в ТЧ документа. А на экранную форму выводить в двух таблицах значений.

Можно и так - даже помню где то пример был в Клубе профессионалов 1С - но не удобно мне показалось.

MicMic
3. Чего делать не стоит, это хранение в текстовых полях. Контроль целостности теряется на уровнре системы, да иглюки бывают когда всяки "значения в строку внутр туда сюда таскаешь".
Тем более организовывать хранение в различных внешних файлах или таблицах sql (видел как то такое извращение).
Но в принципе в простых случаях можно и так, в строку. Например, список сотрудников, проводивших просчет по конкретной инвентарной ведомости, можно в строку загнать. Информация по сути нужна только для печати ведомости, ну и немного на время инвентаризации, а потом она никого не интересует. Да и инвентаризации если проводятся 1-2 раза в год ...

ИМХО. Вообще текстовые поля как ссылки использовать - плохой тон.

MicMic
4.
vitkhv,
Ну так что по вашем делает 1С когда любой объект перезаписывает?
Она его удаляет!
1С слова Update вообще не знает.
Еще раз юзаем профайлер хоть вы и говорите, что у вас на него алергия!

Если говорить о движениях регистра, то вы правы.
Документы и элементы справочника при перезаписи именно апдейтит, а не удаляет, потом создает заново.


И даже после перезаполнения табличной части документа с использованием ЗагрузитьТабличнуюЧасть()? Не думал, что 1С такая молодец! Нет 7.7 под рукой посмотреть не могу. Вроде когда тригеры писал FOR UPDATE никогда не использовал.

vitkhv,
5. А вообще, не понимаю зачем пени и их расчет в документ оплата отчетов комиссионера.
Делайте отдельный документ начисления пени. И все.
Как правило пени начисляют на некоторые просроченные суммы. Чаще всего начисления идут зависимо от дней просрочки и соответсвенно привязаны к документу создавшему задолженность.
Пени - увеличение задолженности и на них, могут быть начислены еще пени и т.д. (в зависимости от договора).

Не проще расчет/начисление пени просто напросто отдельно делать?

ИМХО.
Здесь вы правы, но иногда некоторые полностью прогибаются под пользователей и делают абсолютно все что те говорят. Иногда еще есть постановщики задач - которые так задачи ставят - хотя вроде и профи.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326184
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторВ справочнике хранить табличные части человек собирается

он (она) там результаты расчета будет хранить (суммы пени)... соответственно они меняться будут в зависимости от модификации ТЧ главного док-та или изменения историии взаиморасчетных док-тов

если бы оно один раз вбилось и потом не трогалось то бога ради справочники так справочники
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326211
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MicMicLast1Cmenвот попробуйте перепровести месяц с 2мя док-тами (основным и подчинённым) и с 1 док-том плюс удалением/созданием новых элементов справочника ему принадлежащего штатно и увидите разницу

я её видел и справочники использовал только если их немного будет (порядка десятка) и модификации они подлежать вряд-ли будут

Причем тут удалить/создать элементы справочника при проведении?!

В справочнике хранить табличные части человек собирается, а не заменять ими регистры/движения по ним. Справочники только читать нужно.

У меня именно при проведении использовалось для замены периодических реквизитов в частности механизм хранения цен полность был заменен данным справочником. Т.е. по сути эмуляция регистра сведений.
Проводилось точно не медленней чем УстановитьРеквизитСправочника().
И обмены по УРИБУ стали гораздо быстрее проходить, чем с обновлением _1SCONST.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326220
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторПри двух табличных частях, можно все затолкать и в ТЧ документа. А на экранную форму выводить в двух таблицах значений.

можно и даже делаем (для примера в производственных самописках когда одно сырье списывается а другое приходуется в результате операции... бабкам проще когда они две таблички видят с надписями "списано" и "оприходовано" и в аналогичных случаях)

но нормально работает (в плане поддержки) если ТЧ будут аналогичны или сопоставимы

проблемы с сопровождением могут возникнуть тогда когда структура не алгоритмическая и не приводима к таблично-линейной... тогда использовать для ввода таблицу ввода (тавтология:)) надо и из неё работать с контекстом документа... так мы может секционные вещи делать... но геморой ещё тот
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326228
Фотография MicMic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1CmenавторВ справочнике хранить табличные части человек собирается

он (она) там результаты расчета будет хранить (суммы пени)... соответственно они меняться будут в зависимости от модификации ТЧ главного док-та или изменения историии взаиморасчетных док-тов

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

Т.е. при проведении меняеются данные в самом документе?
- сорри не увидел, где это говорится.
- за такую реализацию, извините, нужно по попке ремешочком. А то еще при проведении одного документа, меняют данные в другом, т это вообще ппц. Концов не сыщешь.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326245
Фотография MicMic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhv
MicMic
4.
vitkhv,
Ну так что по вашем делает 1С когда любой объект перезаписывает?
Она его удаляет!
1С слова Update вообще не знает.
Еще раз юзаем профайлер хоть вы и говорите, что у вас на него алергия!

Если говорить о движениях регистра, то вы правы.
Документы и элементы справочника при перезаписи именно апдейтит, а не удаляет, потом создает заново.


И даже после перезаполнения табличной части документа с использованием ЗагрузитьТабличнуюЧасть()? Не думал, что 1С такая молодец! Нет 7.7 под рукой посмотреть не могу. Вроде когда тригеры писал FOR UPDATE никогда не использовал.



Не передергивайте.
Вы удалили строки из документа, и записали новые. Все правильно - 1с за вами повторила.
Устраивать эвристический анализ что, где когда, что можно и не удалять (т.к. фактически не изменилось), а что надо, встраивая в систему псевдоинтелект? Ню, ню. В какой системе вы такое видели?
У 77 много проблем, но лишнее выдумывать зачем.
:)
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326253
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MicMicLast1CmenавторВ справочнике хранить табличные части человек собирается

он (она) там результаты расчета будет хранить (суммы пени)... соответственно они меняться будут в зависимости от модификации ТЧ главного док-та или изменения историии взаиморасчетных док-тов

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

Т.е. при проведении меняеются данные в самом документе?
- сорри не увидел, где это говорится.
- за такую реализацию, извините, нужно по попке ремешочком. А то еще при проведении одного документа, меняют данные в другом, т это вообще ппц. Концов не сыщешь.

Как я понимаю в данном случае при проведении данные менятся не будут. Во время ввода будут забиваться данные по пеням. Или я не прав?
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326265
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSVДобрый день!
Снова прошу помощи. Вернее идеи, как лучше организовать.
Есть документ "ОплатаОтчетовКомиссионера". В табличной части находятся отчеты комиссионера, которые оплачиваются. Так вот, в этом документе происходит еще расчет пени. Одна из колонок документа имеет кнопку выбора, при нажатии на которую происходит расчет пени. Расчет пени надо показать на закладке "Пени" этого же документа. Т.е. получается, что на каждую строку табличной части документа приходится еще таблица с расчетом пени. Через какой объект это лучше организовать. Хотела использовать метод ЗначениеВСтрокуВнутр(), но табличная часть документа не может иметь неограниченную длину.

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

прямо и не говориться но если результат записи в справочниках(документе) зависит от чего-либо (в данном случае от ТЧ главного документа) то он будет меняться и это аксиома как и то что все будут работать задним числом и ошибаться и вследствии чего будут перепроводиться документы с исходными данными (а пеня по-любому от срока будет зависеть а с позициями документов ошибок больше всего)

если бы нам надо было хранить данные первичного ввода то не вопрос - один раз вбили и забыли (исходные данные редко меняются) а тут получается результаты расчета надо
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326273
HSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HSV
Гость
MicMic А вообще, не понимаю зачем пени и их расчет в документ оплата отчетов комиссионера.
Делайте отдельный документ начисления пени. И все.
Как правило пени начисляют на некоторые просроченные суммы. Чаще всего начисления идут зависимо от дней просрочки и соответсвенно привязаны к документу создавшему задолженность.
Пени - увеличение задолженности и на них, могут быть начислены еще пени и т.д. (в зависимости от договора).

Не проще расчет/начисление пени просто напросто отдельно делать?

ИМХО.
Отдельно делать нельзя. Т.к. от комиссионера поступает одна сумма, которая раскидывается на несколько отчетов комиссионера. Причем условия таковы, что оплачивается сначала самый первый отчет, далее сумма пени по этому отчету (если она есть), далее оплачивается следующий поступивший отчет и т.д. Пеня начисляется только в том случае если есть просрочка и отчет оплачен полностью. Вот поэтому такие заморочки.
А вообще, я уже почти написала с использованием справочника. Только вот вопрос. Наверно надо как-то продумать идею о том, чтобы чистить старые расчеты. В день у нас в среднем по 2-м комиссионерам начисляется пеня, что примерно 6 записей в справочнике. В месяц в среднем 150. В год 1800. Думаю, что нет надобности хранить расчеты более года. Стоит подумать о том, чтобы периодически бухи, по своему усмотрению могли чистить справочник (с указанием периода)
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326286
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MicMicvitkhv
MicMic
4.
vitkhv,
Ну так что по вашем делает 1С когда любой объект перезаписывает?
Она его удаляет!
1С слова Update вообще не знает.
Еще раз юзаем профайлер хоть вы и говорите, что у вас на него алергия!

Если говорить о движениях регистра, то вы правы.
Документы и элементы справочника при перезаписи именно апдейтит, а не удаляет, потом создает заново.


И даже после перезаполнения табличной части документа с использованием ЗагрузитьТабличнуюЧасть()? Не думал, что 1С такая молодец! Нет 7.7 под рукой посмотреть не могу. Вроде когда тригеры писал FOR UPDATE никогда не использовал.



Не передергивайте.
Вы удалили строки из документа, и записали новые. Все правильно - 1с за вами повторила.
Устраивать эвристический анализ что, где когда, что можно и не удалять (т.к. фактически не изменилось), а что надо, встраивая в систему псевдоинтелект? Ню, ню. В какой системе вы такое видели?
У 77 много проблем, но лишнее выдумывать зачем.
:)

MicMic, видимо вам надо прочитать это пост от начала и до конца и в частности предмет нашего спора с Last1Cmen, и аргументы в споре. В предлагаю вам прочитать аргументацию моего аппонента где он использует метод ЗагрузитьТабличнуюЧасть() как аргумет того, что это будет быстрей чем удалить и записать справочник, либо вообще его не трогать если он не изменился.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326298
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкак аргумет того, что это будет быстрей чем удалить и записать справочник

да... загрузить сотню строк и записать документ (не провести а записать) будет быстрее чем удалить и создать сотню элементов
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326302
HSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HSV
Гость
Пеня действительно может меняться (например если была ошибка в документе отчет комиссионера). Но при этом, чтобы изменить расчет, надо будет зайти в документ, нажать на кнопку расчета пени и подтвердить перерасчет.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326311
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторнадо будет зайти в документ, нажать на кнопку расчета пени и подтвердить перерасчет

HSV, что-то мне это не нравиться :(
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326314
HSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HSV
Гость
Last1Cmenавторнадо будет зайти в документ, нажать на кнопку расчета пени и подтвердить перерасчет

HSV, что-то мне это не нравиться :(
А что Вы предложите?
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326327
HSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HSV
Гость
Last1Cmenавторнадо будет зайти в документ, нажать на кнопку расчета пени и подтвердить перерасчет

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

прямо и не говориться но если результат записи в справочниках(документе) зависит от чего-либо (в данном случае от ТЧ главного документа) то он будет меняться и это аксиома как и то что все будут работать задним числом и ошибаться и вследствии чего будут перепроводиться документы с исходными данными (а пеня по-любому от срока будет зависеть а с позициями документов ошибок больше всего)

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

Да ну.А вы когда в последний раз - типовую УПП смотрели? Например в случае когда договор с признаком по документам расчета? Там как раз и появляется доп. ТЧ куда по ФИФО ввставляются документы по которым оплата проведенна. И при проведении задним число данные в этой ТЧ никак не меняются.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326342
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmenавторкак аргумет того, что это будет быстрей чем удалить и записать справочник

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

Тем более на сотне строк разницы особой не будет. Да и на 500 тоже.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326345
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторА вы когда в последний раз - типовую УПП смотрели?

года два-три тому назад :) как и 8ку вцелом

авторкуда по ФИФО ввставляются документы по которым оплата проведенна. И при проведении задним число данные в этой ТЧ никак не меняются

почему это правильно ?
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326354
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1CmenавторА вы когда в последний раз - типовую УПП смотрели?

года два-три тому назад :) как и 8ку вцелом

авторкуда по ФИФО ввставляются документы по которым оплата проведенна. И при проведении задним число данные в этой ТЧ никак не меняются

почему это правильно ?
А я и не говорю, что это правильно. Такова методология от 1С.
Если хорошо подумать можно как недостатки так и достоинства этого метода найти в свете механизма взаиморасчетов конечно.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326367
Фотография MicMic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhvMicMicLast1CmenавторВ справочнике хранить табличные части человек собирается

он (она) там результаты расчета будет хранить (суммы пени)... соответственно они меняться будут в зависимости от модификации ТЧ главного док-та или изменения историии взаиморасчетных док-тов

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

Т.е. при проведении меняеются данные в самом документе?
- сорри не увидел, где это говорится.
- за такую реализацию, извините, нужно по попке ремешочком. А то еще при проведении одного документа, меняют данные в другом, т это вообще ппц. Концов не сыщешь.

Как я понимаю в данном случае при проведении данные менятся не будут. Во время ввода будут забиваться данные по пеням. Или я не прав?

Собственно изначально так и понял. Есть заполненные табличные части. ПРи проведении по данным из них делаются какие-то движения.

Если так, то все зависит от конкретной ситуации/реализации. Может как так быть быстрее, так и иначе.
При использовании нештатных периемов (работа напрямую с БД sql-запросами) - справочники почти всегда и быстрее, и проще (vitkhv, правда не совсем прав, почему, :) например про црдок забывает и др.).

Но тем не менее, в определенных случаях, выигрышь можно и значительный, получить и подчиненными документами. Например. Некий сложный документ с несколькими табличными частями, отражающий некий производственный процесс. Каждая табличная часть "запихана" в отдельный документ. Делаются различные движения по различным регистрам, в некоторых местах достаточно трудоемкие. Пользователей много, объем данных большой и система очень критична к блокировкам. Но актуальные данные нужны только по списанию сырья и полуфабрикатов. Эти данные храню в "корневом документе" и при первичном проведении провожу только его. Остальные движения прописаны в модулях других документов - табличных частей и их провожу их обработкой ночью. Кроме того, для отдельных частей могут быть пересчеты - изменения. Например, корректировка брака, она не зависит от остальных частей и мне достаточно перепровести документ с таб. частью брака, а не весь документ.
Конечно, все это можно реализовать и в одном документе, но это уже заметно больше "танцев с бубном"

:)

ИМХО.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326400
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТем более на сотне строк разницы особой не будет. Да и на 500 тоже.

:)... помните я рассказывал что на одной из конфигураций использовал именно справочники... так вот там около сотни заправок и следовательно по сотне документов-отчетов в день в каждом столько же записей-справочников

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

для эксперимента переделал под документы - скорость то повысилась но т.к. стоимость доработок вцелом вышла великоватой то так и оставили
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326406
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MicMic
При использовании нештатных периемов (работа напрямую с БД sql-запросами) - справочники почти всегда и быстрее, и проще (vitkhv, правда не совсем прав, почему, :) например про црдок забывает и др.).

Еще раз повторюсь - я не говорю про не штатные механизмы, я говорю про метод ВыбратьЭлементыПоРеквизиту(). Работает он очень быстро - выиграша от прямы запросов нет.

Документы которые делают отдельные движения от основного документа - это наверное все - таки не отдельные табличные части - а отдельные документы и подход к реализации здесь другой.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326431
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1CmenавторТем более на сотне строк разницы особой не будет. Да и на 500 тоже.

:)... помните я рассказывал что на одной из конфигураций использовал именно справочники... так вот там около сотни заправок и следовательно по сотне документов-отчетов в день в каждом столько же записей-справочников

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

для эксперимента переделал под документы - скорость то повысилась но т.к. стоимость доработок вцелом вышла великоватой то так и оставили

Опять же при востановлении последовательности данные в справочнике цен не менял. Зачем оно при востановлении последовательности?
Для хранениия второй ТЧ все-таки удобней применять Справочник. Аргументы выше.
Ну а каждый конкретный случай надо расматривать отдельно.
Просто для примера в Транзакции - возьмите и удалите 100 элементов справочника, ну и создайте столько же. Сколько это займет времени - при отсутствии периодических реквизитов в этом справочнике конечно же. Периодические реквизиты - зло. Будет это очень быстро - очень очень быстро.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326546
Фотография MicMic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSVMicMic А вообще, не понимаю зачем пени и их расчет в документ оплата отчетов комиссионера.
Делайте отдельный документ начисления пени. И все.
Как правило пени начисляют на некоторые просроченные суммы. Чаще всего начисления идут зависимо от дней просрочки и соответсвенно привязаны к документу создавшему задолженность.
Пени - увеличение задолженности и на них, могут быть начислены еще пени и т.д. (в зависимости от договора).

Не проще расчет/начисление пени просто напросто отдельно делать?

ИМХО.
Отдельно делать нельзя. Т.к. от комиссионера поступает одна сумма, которая раскидывается на несколько отчетов комиссионера. Причем условия таковы, что оплачивается сначала самый первый отчет, далее сумма пени по этому отчету (если она есть), далее оплачивается следующий поступивший отчет и т.д. Пеня начисляется только в том случае если есть просрочка и отчет оплачен полностью. Вот поэтому такие заморочки.
А вообще, я уже почти написала с использованием справочника. Только вот вопрос. Наверно надо как-то продумать идею о том, чтобы чистить старые расчеты. В день у нас в среднем по 2-м комиссионерам начисляется пеня, что примерно 6 записей в справочнике. В месяц в среднем 150. В год 1800. Думаю, что нет надобности хранить расчеты более года. Стоит подумать о том, чтобы периодически бухи, по своему усмотрению могли чистить справочник (с указанием периода)

Ээээ??? Кккакие перерасчеты? Что чистить?

Начнем с начала. Что Вы понимаете под пени?
Что вы хотие хранить?
Что Вы с этим делаете потом?

По видимому, я просто не понимаю какую задачу Вам поставили.

По классике, утрированно.

Конец месяца. Период закрыт. По должникам начисляем пени, к примеру 1% за каждый день просрочки.

По клиенту сумма долга на конец месяца 500 р. Структура задолженности следующая.
Отчет комиссионера 1 - 50 р., в том числе просрочено 50 р. 10 дн.
Отчет комиссионера 2 - 100 р., в том числе просрочено 100 р. 5 дн.
Отчет комиссионера 3 - 150 р., в том числе просрочено 100 р. 1 дн.
Отчет комиссионера 4 - 200 р.

Начисляем пени.

ОК1 - 5 р.
ОК2 - 5 р.
ОК3 - 1 р.
ОК4 - 0 р.
Итого 11 р.

В результате не понимаю
1. Что может пересчитываться?
2. Что же за результаты расчета во второй таб. части
3. Как собираетесь учитывать просрочки по оплет уже начисленных пени.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326575
Фотография MicMic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhvLast1CmenавторТем более на сотне строк разницы особой не будет. Да и на 500 тоже.

:)... помните я рассказывал что на одной из конфигураций использовал именно справочники... так вот там около сотни заправок и следовательно по сотне документов-отчетов в день в каждом столько же записей-справочников

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

для эксперимента переделал под документы - скорость то повысилась но т.к. стоимость доработок вцелом вышла великоватой то так и оставили

Опять же при востановлении последовательности данные в справочнике цен не менял. Зачем оно при востановлении последовательности?
Для хранениия второй ТЧ все-таки удобней применять Справочник. Аргументы выше.
Ну а каждый конкретный случай надо расматривать отдельно.
Просто для примера в Транзакции - возьмите и удалите 100 элементов справочника, ну и создайте столько же. Сколько это займет времени - при отсутствии периодических реквизитов в этом справочнике конечно же. Периодические реквизиты - зло. Будет это очень быстро - очень очень быстро.

Удалить/записать 1 документ со 100 строками будет быстрее, чем удалить/запистаь 100 элементов справочника. Хотя бы по тому, что в одном случае один делет на сервер, в другом случае 100 раз сказать серверу удалить. При большом количестве работающих может быть критично.

В большинстве случаев, пользуюсь справочниками. Но правильней, все же, использовать документ.

А быстрее - еще раз повторюсь, когда как, и смотря где.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326607
Фотография MicMic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторТем более на сотне строк разницы особой не будет. Да и на 500 тоже.

Чем больше строк, тем больше будет выигрывать документ.

Что будет работать быстрее?

- простая инструкция (удаление документа)
delete
From
Where iddoc = Вот этот документ

Или же сначала выборка
Select ID
From
Where iddoc = Вот это
Потом топтаться по выборке отправляя много раз
delete
From
Where id = Вот этоn элемент

:)
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36326869
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MicMicавторТем более на сотне строк разницы особой не будет. Да и на 500 тоже.

Чем больше строк, тем больше будет выигрывать документ.

Что будет работать быстрее?

- простая инструкция (удаление документа)
delete
From
Where iddoc = Вот этот документ

Или же сначала выборка
Select ID
From
Where iddoc = Вот это
Потом топтаться по выборке отправляя много раз
delete
From
Where id = Вот этоn элемент

:)

Мы про штатные средства говрим?
Если да, то тогда давайте проведем тест. Смысл тестов насколько милисикунд\секунд будет быстрее удальтся документ, со 100 строками, с 500 строками и с 1000 строками.
Соответветственно в справочнике 100 элементов, 500 элементов и 1000 элементов.
Документа будет 3 :
1.ДокументОснование.
2.Документ ТабличнаяЧасть (В шапке документ основание, В ТЧ ОтчетКоммисионера и Пеня)
3.ОтчетКоммисионера.
В подчиненном документе в шапке - реквизит ДокументОснование. В табличной части - 2 реквизита ОтчетКоммисионера и Пеня.
Во втором случае 2 документа и один справочник.
1. ДокументОснование
2.ДокументОтчетКоммисионера.
3. Справочник с 3 реквизитами (ДокументОснование-с отбором, ОтчетКоммисионера- с отбором, Пеня)
Ну а дальше выбираем по документу основанию либо все элементы справочника (использую ВыбратьЭлементыПоРеквизиту) либо удаляем подчиненный документ.
Ну и какая будет разница на сколько секунд/милисикунд?
И насколько эта разница будет критична - давайте посмотрим сравним....
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36327084
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhvЕгоров Александр
Реквизиты справочника хотя бы позволяют построить "произвольные" индексы, в отличии от реквизитов документов, что ускорит выборку "нештатными" средствами.
Почему не штатными.
Еще раз повторюсь - метод справочника ВыбратьЭлементыПоРеквизиту() работает очень быстро... прямыми запросами мне его обогнать не удалось.
ВыбратьЭлементыПоРеквизиту() не засунешь в запрос. Я имел ввиду не поэлементный перебор, а использование данных из справочника в запросах по документам. Иначе зачем тогда в справочнике данные, заполняемые при перепроведении? Необходимость второй ТЧ рассматриваю только если она требуется для заполнения пользователем. Делать вторую ТЧ для хранения результата проведения - так вполне хватает регистров. На мой вкус, конечно. :)
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36327113
Егоров Александр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Егоров Александр,

Хотя я похоже не совсем въехал в суть спора. :) У автора задача - хранить во второй ТЧ результаты интерактивного расчета, на основании которых будет работать проведение. Соответственно на скорость перепроведения существенного влияния метод организации второй ТЧ не имеет. Ибо там происходит только выборка данных, никакого удаления\заполнения справочника не должно быть, как не должно быть и перепроведения дополнительного документа.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36327200
DobPilot
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HSVДобрый день!
Снова прошу помощи. Вернее идеи, как лучше организовать.
Есть документ "ОплатаОтчетовКомиссионера". В табличной части находятся отчеты комиссионера, которые оплачиваются. Так вот, в этом документе происходит еще расчет пени. Одна из колонок документа имеет кнопку выбора, при нажатии на которую происходит расчет пени. Расчет пени надо показать на закладке "Пени" этого же документа. Т.е. получается, что на каждую строку табличной части документа приходится еще таблица с расчетом пени. Через какой объект это лучше организовать. Хотела использовать метод ЗначениеВСтрокуВнутр(), но табличная часть документа не может иметь неограниченную длину.

У вас методически не верное решение, не мешайте оплату с начислением пени.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36328349
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmen,MicMic.

Итак написал конфигурацию, провел тестирование.
В конфигурации - 3 документа:
1. РасчетПени
2. ОтчетКоммисионера
3. РасчетПениТЧ.(в этом документе хранятся табличные части документа РасчетПени)

1 справочник - ПеняТЧ (альтернатива документу РасчетПениТЧ)

Итак проводим сценарное тестирование:
Применительно к задаче описанной Last1Cmen

Last1CmenавторТем более на сотне строк разницы особой не будет. Да и на 500 тоже.

:)... помните я рассказывал что на одной из конфигураций использовал именно справочники... так вот там около сотни заправок и следовательно по сотне документов-отчетов в день в каждом столько же записей-справочников

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

для эксперимента переделал под документы - скорость то повысилась но т.к. стоимость доработок вцелом вышла великоватой то так и оставили

т.е. исходя из задачи имеем 100 документов в каждом 100 строк.
Строки Хранятся либо в Документах РасчетПениТЧ, либо в справочнике ПеняТЧ.
Генерация вторых табличных частей и их удаление зашита в модуль проведения документа.

РасчетПени.
Итак проведение документа РасчетПени 100 строк: (происходит генерация вторых табличных частей)
Хранение ТЧ в справочнике: 11608 мс
Хранение ТЧ в документах: 4455 мс

Распроведение документа 100 строк: (происходит удаление ранее сгенерированных ТЧ)
Хранение ТЧ в справочнике: 10001 мс
Хранение ТЧ в документах: 4455 мс

Перепроведение документа 100 строк: (происходит удаление ранее сгенерированных ТЧ и генерация новых)
Хранение ТЧ в справочнике: 20749 мс
Хранение ТЧ в документах: 5457 мс

Да интересно Last1Cmen что у вас за скорости в системе если вашим сотрудникам подождать 11 секунд вместо 4,5 лень? А может вашим пользователям просто нравится наблюдать результаты своего "труда" в общем журнале документов?


В тест для сравнения вставленны результаты для 1000 строчного документа
Проведение документа РасчетПени 1000 строк: (происходит генерация вторых табличных частей)
Хранение ТЧ в справочнике: 108536 мс
Хранение ТЧ в документах: 39239 мс

Распроведение документа 1000 строк: (происходит удаление ранее сгенерированных ТЧ)
Хранение ТЧ в справочнике: 99689 мс
Хранение ТЧ в документах: 12344 мс

Перепроведение документа 1000 строк: (происходит удаление ранее сгенерированных ТЧ и генерация новых)
Хранение ТЧ в справочнике: 208546 мс
Хранение ТЧ в документах: 57200 мс

На DBF базе метод на справочнике вообще часто превосходил по скорости метод с документами!!!!

Во вложении MD с конфой на которой тестировал, кому интересно забирайте.

Конфигурация на которой проводились тесты: MS Windows XP SP3, MS SQL 2005 SP2, PentiumDC E6300, 4Gb RAM.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36328355
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уточнение проводились, распроводились пакеты из 100 документов.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36328519
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhv, у меня в то время в распоряжении был вин 2000 + такой же мс скуль + чуть более 2х Ггц проц с гипертрейдингом на 2 потока + 1Гб озу... там разница была с 1,5 часов до 2-х с копейками... вобщем почти ночь если взять всё восстановление

по свободе гляну на мдшник


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

документы ТЧ не удалять надо а перезаписывать (после перезаполнения) при перепроведении... в отличии от справочников которые надо удалять ;) (можно конечно и не удалять но тогда надо логику включать что распространяется и на документы)

это на первый взгляд сразу
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36328571
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmenне удержался глянул глазком... так и есть как думал :)

документы ТЧ не удалять надо а перезаписывать (после перезаполнения) при перепроведении... в отличии от справочников которые надо удалять ;) (можно конечно и не удалять но тогда надо логику включать что распространяется и на документы)

это на первый взгляд сразу

При перезаписи разницы почти не будет. Попробуйте сами :)
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36328633
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhvLast1Cmenне удержался глянул глазком... так и есть как думал :)

документы ТЧ не удалять надо а перезаписывать (после перезаполнения) при перепроведении... в отличии от справочников которые надо удалять ;) (можно конечно и не удалять но тогда надо логику включать что распространяется и на документы)

это на первый взгляд сразу

При перезаписи разницы почти не будет. Попробуйте сами :)

Проверил перезаполнение получается даже медленней чем с удаление/создание.
7442 мс против 5457 мс

Здесь кстати ошибка:
vitkhv
Распроведение документа 100 строк: (происходит удаление ранее сгенерированных ТЧ)
Хранение ТЧ в справочнике: 10001 мс
Хранение ТЧ в документах: 4455 мс

вот так правильно:
Распроведение документа 100 строк: (происходит удаление ранее сгенерированных ТЧ)
Хранение ТЧ в справочнике: 10001 мс
Хранение ТЧ в документах: 1247 мс
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36328643
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhv, будет плюс учтите то железо и большее количество перезаписываемых реквизитов как и сам размер БД в десяток гб

отставание не на 5-6 сек а в два раза ;)

я гляну сегодня... загоню в скл и там покручу
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36328716
vitkhv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Last1Cmenvitkhv, будет плюс учтите то железо и большее количество перезаписываемых реквизитов как и сам размер БД в десяток гб

отставание не на 5-6 сек а в два раза ;)

я гляну сегодня... загоню в скл и там покручу

Вы видимо статистику очень любите ;) в которой можно одни и теже цифры по разному трактовать.
Здесь именно отставание в пять-шесть секунд, применительно к вашему сценарию (100 документов по 100 строк каждый) естественно., хотя и не отрицаю превосходства вашего метода на 200% ;)
И эти пять-шесть секунд вообще в итоге растворяться, т.к. документ не только по справочнику (документу в вашем случае) проводить надо.
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36329199
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
vitkhv, вобщем пришлось немного доработать в том плане что не удалять документы а просто перезаполнять ТЧ (все так же из таблицы что и справочники для чистоты эксперимента)

плюс вставить реквизит в сам док-т "РасчетПени" реквизит куда прописать подчинённый док-т ТЧ (можно было бы и графу отбора использовать но честно влом кодить было) и при перепроведении искать сразу этот док-т и его уже перезаполнять... справочники оставил без изменения

ИТОГО:

перепроведение (100х100)

Док-ты - 11 687 мс (брал среднее из трех замеров... кэш мало ли)
Справочники - 63 566 мс

т.е. уже в 5 с копейками раз.. слабее железо будет ещё сильнее отрыв... само удаление тоже в 3 раза (32 562 против 13 222) помедленнее

итого видим что на удаление уходит половина времени... что и требовалось доказать (что запись быстрее чем удаление и запись) и даже если убрать время затраченое на удаление справочника то остаток всё равно в 3 раза больше чем у перезаписи документа

вот такая каатавасия :)

железо AMD 5000+ 2,6Ггц, 4 ОЗУ, 2003х64, скуль 2005 сп3... режим скл ессно
...
Рейтинг: 0 / 0
1С 7.7 - Таблица документа
    #36329224
Last1Cmen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
там такая разница между вашими и моими может ещё и от того получилась что если вы меряли после первоначального заполнения (я про справочники) то первый раз отработает быстрее из-за того что при первоначальном заполнении заполняется на порядок меньше элементов (забыли цикл по каждому док-ту "РасчПени" сделать и соответственно посоздавалось всего лишь по одному элементу на каждый из отчетов комиссионера... я не проверял т.к. сразу начал перепроводить но имхо разницы могут быть и в этом... при последующих перепроведениях уже всё нормально)
...
Рейтинг: 0 / 0
97 сообщений из 97, показаны все 4 страниц
Форумы / [игнор отключен] [закрыт для гостей] / 1С 7.7 - Таблица документа
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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