Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   1С 77 ТИС "Вторая" табличная часть документа. Внешний файл или реквизит - строка неограниченнйой длины (http://forums.kuban.ru/f1040/1s_77_tis_vtoraya_tablichnaya_chast-_dokumenta_vneshnij_fajl_ili_rekvizit_-_stroka_neogranichennjoj_dliny-3379635.html)

Путевый лист 02.12.2012 19:24

1С 77 ТИС "Вторая" табличная часть документа. Внешний файл или реквизит - строка неограниченнйой длины
 
1С 7.7 ТИС на терминальном сервере + УРБД Примерно 30 ползователей

Хочу избавить от лишнего в-принципе документа, который до этого формтировал один регистр опер.учета и сделать проведение по этому регистру в "родительских" документах: реализация, перемешение, чек ккм, поступление, оприходование, списание, комплектация, строкаавансовогоотчетазакупкатмц.

Вот думаю, что лучше:
1. создать реквизит в 11 видах документа - строку неограниченной длины или
2. просто создавать внешний файлик для каждого документа и считывать из него ТЗ при проведении или
3. Создавтаь непроводящийся подчиненный документ с этой табличной частью - но туту очень много всяческих проблем начинает вожникать (в т.ч. с пометкой на удаление, распроведением, изменением и т.д.).
ЕЩЕ СУШЕСТВЕННЫЙ МОМЕНТ. МНЕ НУЖНЫ ТОЛЬКО ДВИЖЕНИЯ РЕГИСТРА ,А САМИ "ВТОРЫЕ" ТАБЛИЧНЫЕ ЧАСТИ МНЕ НУЖНО ХРАНИТЬ НО МАКСИМУМ МЕСЯЦ.
ЧТО ПОСОВЕТУЕТЕ???

Billi 02.12.2012 20:47

[url]http://pl1c.org/load/1-1-0-24[/url]

VZ 02.12.2012 21:06

Считай емкость таблицы для строк неограниченной длины 1SBLOB): минимальный размер блока (оно же кратность) 80 байт. Как всякая строчная переменная не любит наличие служебных символов. Ссылочная целостность - ручками.
Внешний файлик: скока их будет, прикинул? Скорость считывания невысокая (для интерактивного режима, может пойдет, но при массовом перепроведении будет тот еще тормоз. И работа с внешним файлом будет монопольной. С этим надо считаться. Искать просто: по ИД дока.

bma1 02.12.2012 22:00

Я когда-то на 77 делал документ с двумя табличными частями (даже кусок конфы выкладывал на проклабе). Ничего особо заморочного с пометками удаления т.п. Всей работы на час с прерывами на кофий.

bma1 02.12.2012 22:08

P.S. Использовал именно второй подчиненный документ.

USSR 03.12.2012 01:36

Что значит хранить месяц? Это срок жизни базы?
Правильно народ советует: храни данные в подчиненном документе (непроводном), а проводи в родительском. Лучше документа для хранения таблицы ничего нет. Если уж сильно против - храни в справочнике. Но ни как ни в строках неограниченной длины, это неудачное решение, а уж во внешних файлах - жесть.

EarlyBird 03.12.2012 06:33

самое смешное - автор уже вылезал с подобными воплями
где-то год назад вроде

Путевый лист 03.12.2012 08:28

6 - Ирли Бёрд. Извини, но воплей не было. Механизм работает с 2003 года как часы, но вот часы "песочные", а мне теперь надо чтобы как "электронные". Просто видение всей системы стало малость другим вот и думаю как переделать чтоб самому понравилось.

3 - bma1. Механизм такой:
Чем не устраивает подчиненный документ:
Хотя бы тем, что я его табличную часть ввожу до созранения родительского документа. И основания у меня еще нет - уже это неудобно. Процедура ПриЗаписи выполняется до записи документа.

(5) - USSR [b]Да все просто. Мне нужны движения регистров (если что я из них могу восстановить вторую тч). А сохранение второй ТЧ по-сути практически мне и не нужно. Нужна в-основном только до проведения документа (дальше все можно получить из ВыбратьДВижения(Документ).). ПОэтому и ломаю голову как лучше[/b]

Путевый лист 03.12.2012 08:37

2 - VZ Делал раньше вторую ТЧ через строку неограниченной длины. Работает с 2006 года. Но документы в которых это есть - вводятся только двумя пользователями, а теперешняя сиситема - 30 пользователей. Еще раз говорю - в-принципе - вторая ТЧ мне по-сути нужна пока документ не проведен. А потом уже движения можно брать из регистра. Но не будет ли сетевых коллизий при многопользовательском чтении движений регистра по различным документам

Путевый лист 03.12.2012 08:40

2- VZ Реквизит или внешний файлик удобен тем что он не требует записи документа-основания. табличная часть которая в него записывается простенькая - Товар,Метраж,Родительская бухта (если отрез). [b]Кол-во бухт. количество строк в такой ТЧ максимум 250 - больше и не бывает. [/b]

Helen1986 03.12.2012 09:18

подумать и впехать в один документ вера не позволяет
тогда с Верой развод - жениться на Машке

Путевый лист 03.12.2012 09:31

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

VZ 03.12.2012 09:41

7-Путевый лист > Что мешает работать с ТЗ? Если есть подчиненный док - скачивай ТЗ из него, нет подчиненного дока (при создании нового, например) - генерируй структуру ТЗ без записей (тоже самое придется делать в случае длинной строки, или внешнего файла), ПриЗаписи() одновременно обновляй/создавай подчиненный док.

Путевый лист 03.12.2012 10:20

12 - VZ ПриЗаписи родительский документ еще не записан и поэтому подчиненный ему еще создать нельзя.

Billi 03.12.2012 10:25

13-Путевый лист >Юра, ты (1) смотрел?

Путевый лист 03.12.2012 10:28

14 - Андрей. Скачал. Там длл-ки не сильно загрузят мне систему и потом это же терминал - оффис там конечно стоит - но вообще-то лучше бы без него!!!

Billi 03.12.2012 10:30

15-Путевый лист >длл-ки там стандартные 1срр и формекс, а сам офис нахрен не нужен, там только один АктивХ из него нужен, если офис стоит, то тогда вообще не забивай этим голову.

Путевый лист 03.12.2012 10:30

14 - Андрей. а 1cqlite там зачем??? Остальные длл-ки у меян же задействованы и так

Billi 03.12.2012 10:32

К тому же этот АктивХ нужен только для панели инструментов для доп.табчасти, если панель не нужна, то офис не нужен. Там в комментах всё написано.

Billi 03.12.2012 10:32

17-Путевый лист >1cqlite не нужна. Видать просто под руку попалась :)

Путевый лист 03.12.2012 10:34

19 - Андрей Доп.часть - я редактирую только обработкой. А как насчет того что эта зараза ббудет мигрировать УРБД???

Billi 03.12.2012 10:35

20-Путевый лист >Да никаких проблем, настрой правила миграции для справочника в котором хранится доп.тч. и всё.

Путевый лист 03.12.2012 10:40

21 Billi - есть нюанс - мне видеть вторую табличную часть надо только в обработке - ТЗ на форме. Я там ее и редактирую. И я в транзакциях не утону если все будет и читаться и писаться в один справочник???

Billi 03.12.2012 10:45

22-Путевый лист >А на кой тебе эта обработка?
Помести доп.тч на другую закладку.
Ну или перенеси функционал по работе с доп.тч в свою обработку.
А насчет транзакций: таблица, в которой хранится родная тч документа ничем не отличается от таблицы справочника, так что всё практически штатно.
ВК нужны только для интерактива.

Путевый лист 03.12.2012 10:53

23- Billi Ну ты же знаешь, что у меня вторая ТЧ - это по-сути таблица значений, которая автоматом меняется если например я изменил количество в основной ТЧ или добавил туда стркоу с кабельным товаром или убрал оттуда строку с кабельным товаром. У меня в этой обработке отрезы, видны остатки по метражам для данного товара и пр

Billi 03.12.2012 11:01

24-Путевый лист >Ну так в примере из (1) тоже самое.
доп.тч подчинена основной. Добавляй нужные реквизиты в доп.тч, они автоматом подхватятся.
И вообще в (1) [b]пример[/b] реализации.
Затачивай как тебе нужо.

Путевый лист 03.12.2012 11:10

25 - Billi Да можно все это приспособить наверное. Боюсь что размер этого справочника может со временем стать ну очень большим

Billi 03.12.2012 11:15

26-Путевый лист >Когда вырастит - обрежешь, тебе же не нужны данные старше одного месяца.

VZ 03.12.2012 11:27

13-Путевый лист > Можно. Вовсе не обязательно ссылку связи размещать в подчиненном документе: можно и в родительском. В конце-то концов, эта связь нужна именно родительскому документу, а не подчиненному.

Путевый лист 03.12.2012 11:28

27 - Billi Суровый ты человек. Чуть выросло - и уже обрезание делать надо :)))

СthuIhu 03.12.2012 11:38

[quote=Путевый лист;27980041] 12 - VZ ПриЗаписи родительский документ еще не записан и поэтому подчиненный ему еще создать нельзя. [/quote]
Процедура ПриЗаписи(ФлагТолькоПроверить=0)
Если ФлагТолькоПроверить=0 Тогда
ПриЗаписи(1); Если СтатусВозврата()<>0 Тогда
Записать(); // и засунуть ТекущийДокумент() куда надо
КонецЕсли;
КонецЕсли;
...

Путевый лист 03.12.2012 11:48

30 - Cthulhu Спасибо. Просто в предопределенной процедуре призаписи - нет параметров по крайней мере нигде я никогда не видел чтобы ПриЗаписи(Параметр) было. Видимо я подходил без креатива!!!

Helen1986 03.12.2012 12:00

(31) при чтении синтаксис-урода надо 3 раза протирать очки. Коньяком

Чучундер 03.12.2012 12:15

я - за вторую таб.часть.

Путевый лист 03.12.2012 12:30

33 - Чучундер - Ты голосуешь за Билли???

СthuIhu 03.12.2012 14:19

(31): таким образом можно любую предопределенную до-делать, добавляя параметр(-ы) со значениями по умолчанию - используя которые вызывать их программно с модификацией поведения. тут ещё такой момент, не совсем, кхм, очевидный: СтатусВозврата() в исполнительной системе есть всегда(!), и при начале выполнения любого кода он равен 1 (а в конце выполнения блока кода - может быть и другим, измененным программно) - что можно использовать для своих целей, даже если он никак не влияет на поведение движка

VZ 03.12.2012 15:05

32-Helen1986 > В СП (а альтернативного родному, не путать с прочими als-ами) процедура ПриЗаписи() описана без параметров. Так же, как и родной документации. Так что не надо упрекать Путевой лист, что он не пьет коньяк на работе :)
То, о чем говорит Ктулху - недокументированная фича.

VZ 03.12.2012 15:07

+36 Поправка: ...а альтернативного родному, не путать с прочими als-ами, [b]не встречал[/b]...

Путевый лист 03.12.2012 16:54

36 - VZ Ну вот смотри ситуацию:
1. создал документ, при записи создал подчиненный документ
2. оказалось что все такие товары из документа удалили, значит надо удалять и подчиненный документ, он не имеет смысла, и ссылку на него. ВОТ И ВСЯКИЕ ЛИШНИЕ МАНИПУЛЯЦИИ С ЖУРНАЛОМ. А вот если ТЧ хранится независимо от базы или просто в базе как строковый реквизит документа - таблица значений - но этих проблем как бы и нет. ВСЕ В РАМКАХ ОДНОГО ДОКУМЕНТА

VZ 03.12.2012 17:30

38-Путевый лист > ПриУдаленииДокумента() не?


Текущее время: 06:06. Часовой пояс GMT +3.