Вопрос грамотного создания универсального документа для ввода остатков

Форум 1С: Одинэс.Ру

Найти!

Вопрос грамотного создания универсального документа для ввода остатков

Stella12
11.03.2009 - 07:03
В связи с необходимостью больших корректировок текущей базы (7.7, оперучет) требуется создание документа для универсального ввода остатков по регистрам.
В базе уже есть документ с большим количеством измерений (реквизит неопределенного вида) и ресурсов.
В нем есть определенные недостатки:
1) в измерениях типа число (например, ЦенаПрод) при примерении метода НазначитьТип("Измерениеn","Число",Длина,Точность) почему-то точность обрезается до 0... с чем этот глюк связан пока непонятно (может я что-то не так делаю);
2) в связи с тем, что количество измерений неизвестно, в документе сделано "про запас" десяток измерений и ресурсов. Соответственно, при превышении числа измерений+реквизитов в регистре числа реквизитов документа может возникнуть проблема, делать же 20 реквизитов "про запас", ИМХО, нерационально.
Была сделана попытка всю таблицу хранить в строке неограниченной длины, но возникла проблема с автообменом (очень большие документы мигрируют по 2-3 часа).
В связи с этим вопрос:
1) с точки зрения организации базы что рациональнее - ТЗ в строке неограниченной длины или два десятка реквизитов неопределенного типа "про запас" (возможно, почти все они будут пустые).
2) можно ли побороть глюк с нулевой точностью при назначении числового типа реквизиту документа
3) может еще есть какие-то более рациональные методы?
Спасибо.
К списку тем 1 > К списку форумов

Интересные темы

odines.ru
27.10.2020 - 18:24
Смотри также:
Как в отчете сделать табличную часть?
v7. Во все печатные формы конфигурации нужно добавить колонтитулы. Как оптимальнее?
Как отследить одиночный клик в таблице

Re: Вопрос грамотного создания универсального документа для ввода остатков

aKomper
1 - 11.03.2009 - 07:28
Почему бы не создать документ универсальной структуры? К примеру, в шапке хранить вид регистра, в ТЧ - номер записи, имя реквизита и его значение. Тогда все это можно быстро развернуть. На форму вытащить ТЗ, в которой все и отображать. Проблема может быть с количеством строк документа, но это тоже решаемо. Но вот насчет удобства работы с документом - тут вопрос спорный

Re: Вопрос грамотного создания универсального документа для ввода остатков

МимохожийОднако
2 - 11.03.2009 - 07:38
1)Надо только необходимое количество реквизитов.
2)можно. Надо смотреть код.
3)штатные способы, если понять причины корректировок
ИМХО, в сабже философские вопросы. Ничего конкретного.

Re: Вопрос грамотного создания универсального документа для ввода остатков

Stella12
3 - 11.03.2009 - 08:02
А штатных способов и нет, т.к. конфа самописная.
Сейчас перебила ввод остатков с ТЗ в строке на документ с реквизитами неопределенного типа - обмен прошел быстро.
Меня интересует именно оптимизация базы, т.к. насколько "раздувают" базу пустые реквизиты неопределенного типа (по обмену они грузятся быстро).
Необходимое количество реквизитов не выходит, т.к. комбинация "измерения + реквизиты" может быть как большой, так и маленькой :).
 
Код - ну например, такой:
Док.НоваяСтрока();
...
Док.НазначитьТип("Измерение4","Число",12,2);  
...
Док.Измерение4 = ТЗ.ПолучитьЗначение(СтрДляПоиска,"ЦенаПрод");
 
В ТЗ цена точно с 2мя знаками после запятой, в самом документе и в регистре при его проведении копейки отбрасываются.

Re: Вопрос грамотного создания универсального документа для ввода остатков

Друзья зовут меня Курулай
4 - 11.03.2009 - 08:35
(3) хранить ТЗ в строковом реквизите неопределённой длины - это крайний  непрофессионализм!
За это Вы бы мухой вылетели с экзамена на специалиста!
Представьте, вы запихали в строковый реквизит ссылку на объект. А потом, через месяц, этот объект удалили. Как думаете, что будет, когда вы после этого откроете свой замечательный универсальный документ?

Re: Вопрос грамотного создания универсального документа для ввода остатков

Vacony
5 - 11.03.2009 - 08:51
Есть же документ - УниРег зовется кажется - поищи. Он делает все и вся и без глюков по любому регистру с любыми измерениями.

Интересные темы

odines.ru
27.10.2020 - 18:24
Смотри также:
Редактировать операции документов. Что-то не то...
Загрузить ~ 300 000 проводок?
Мясной отдел в супермаркете. Есть вопросы

Re: Вопрос грамотного создания универсального документа для ввода остатков

Vacony
6 - 11.03.2009 - 08:52
(4) кто ж ссылки пихает в строку... я бы там лучше Код хранил :)

Re: Вопрос грамотного создания универсального документа для ввода остатков

roma n
7 - 11.03.2009 - 08:57
(3) в табличной части определи числовые колонки в количестве = max(количество ресурсов I-го регистра).
+(5) ключевые слова "Универсальный двигатель регистров"

Re: Вопрос грамотного создания универсального документа для ввода остатков

Друзья зовут меня Курулай
8 - 11.03.2009 - 09:25
(6) то есть ты считаешь, что хранить ссылку неготично, а хранить код - готично?
ты не понимаешь, что это те же яйца, но вид сбоку?
коды справочника можно поменять с помощью обработки перенумерации, ты подумал об этом?  Перенумерация кодов - нормальная рабочая процедура для любой базы, безболезненная (и часто полезная), а при твоём решении она станет катастрофой.

Re: Вопрос грамотного создания универсального документа для ввода остатков

Vacony
9 - 11.03.2009 - 09:37
(8) мы спорим ? на любое решение можно найти что-то что выбьет его из колеи. Если я слежу за базой - и я храню код в ТЗ - то я же запрещаю изменение кодов справочника.
Вы хотите хранить элемент в ТЧ ? Тогда я разрешаю прямое удаление элементов и хгрохаю элемент и его родителя - что вы видете ив ТЧ ? :)

Re: Вопрос грамотного создания универсального документа для ввода остатков

Друзья зовут меня Курулай
10 - 11.03.2009 - 10:21
(9) конечно, всё в мире относительно, и на любую старушку всегда найдётся прорушка.
Но есть некоторые элементарные стандарты поддержания ссылочной целостности БД, знание и применение которых требуют на экзамене "специалист", и по которым написаны типовые конфиги 1С.
В типовых конфигах не предусмотрено прямое удаление объектов, нигде не используется хранение ссылок на агрегатные объекты в строковых реквизитах неопределённой длины, также как и хранение там кодов справочников.
Это моветон программирования, но это конечно не жёсткие правила, не нравится - можешь не выполнять.

Re: Вопрос грамотного создания универсального документа для ввода остатков

Vacony
11 - 11.03.2009 - 10:25
(10) экзаменационный Вы наш :) мы ведь в реальной жизни, а тут совсемне так как в книгах и на экзамене :) Типовые кишат ошибками и недоработками, и они типовые - а я не видел еще типового предприятия.
Предлагаю дружбу и ничью в нашем споре :)
А автора уже послали за "типовым" документом для регистра УниРег.

Re: Вопрос грамотного создания универсального документа для ввода остатков

Друзья зовут меня Курулай
12 - 11.03.2009 - 10:30
(11) садитесь, двойка! :)

Re: Вопрос грамотного создания универсального документа для ввода остатков

Друзья зовут меня Курулай
13 - 11.03.2009 - 10:40
(11) ладно, согласен, поразвлекались и хорош. Согласен на ничью.
спор действительно бестолковый
но хоть развеялись маленько, от работы отдохнули :)
 

Re: Вопрос грамотного создания универсального документа для ввода остатков

Vacony
14 - 11.03.2009 - 11:16
(13) +1 :)

Re: Вопрос грамотного создания универсального документа для ввода остатков

Billi
15 - 11.03.2009 - 11:35
Зачем где-то еще сохранять, когда все необходимые данные и так сохраняются в регистре.
ТЗ на форму и заполняй ее по движениям при открытии.
На сколько я помню, "Универсальный двигатель регистров" по такому принципу и работает.

Re: Вопрос грамотного создания универсального документа для ввода остатков

Stella12
16 - 11.03.2009 - 14:01
(4) Тут как раз проблем не вижу. Документ делает движения, при попытке удалить элемент справочника возникнет ссылка на документ, документ же, как вариант, доступен только админу. Удалить же, оставив пустые ссылки, при желании каждый может, только оно надо?
Меня больше волнует вопрос оптимизации базы. Честно говоря, не знаю, насколько реквизит типа "неограниченная строка" увеличивает базу.
(15) Идея, конечно, хорошая. Но в этом случае невозможно будет создание документа при помощи внешней обработки. Это все-таки не восьмерка.
 
Универсальный документ, если честно, пока не нашла.

Re: Вопрос грамотного создания универсального документа для ввода остатков

roma n
17 - 11.03.2009 - 14:22
(16) почему невозможно? Возможно. Открывай форму нового документа. В ПриОткрытии лови параметр, записывай и проводи док как тебе нужно. Правда УниверсальныйДвигательРегистров, сколько помню, так не умеет :)

Re: Вопрос грамотного создания универсального документа для ввода остатков

roma n
18 - 11.03.2009 - 14:25
(16) "Универсальный двигатель регистров" - ПЕРВАЯ ЖЕ ССЫЛКА В ЯНДЕКСЕ (да простят мне модераторы капс...)

Re: Вопрос грамотного создания универсального документа для ввода остатков

Vacony
19 - 11.03.2009 - 14:33
(16) за базу не волнуйтесь, пухнет не так сильно как этим пугают

Re: Вопрос грамотного создания универсального документа для ввода остатков

Друзья зовут меня Курулай
20 - 11.03.2009 - 14:40
(16) "Тут как раз проблем не вижу. Документ делает движения, при попытке удалить элемент справочника возникнет ссылка на документ"
 
А Ваш документ может существовать только в проведённом состоянии?
Больше вариантов не предусматривается?
Что, если он будет просто записан?

Re: Вопрос грамотного создания универсального документа для ввода остатков

Stella12
21 - 11.03.2009 - 14:58
(17) Повторяю. Документ создается внешней обработкой, программно. Ну можно сказать, ряд документов. ПриОткрытии() тут не сработает, ибо форма банально не открывается. А уж как передать этот параметр в ОбработкуПроведения() кроме реквизита документа или глобальной переменной я в принципе не вижу...
(20) В данном конкретном случае - не будет. Т.к. права будут только у админа, а админ - я :). Меня больше вопрос оптимизации ИБ интересует.

Re: Вопрос грамотного создания универсального документа для ввода остатков

Vacony
22 - 11.03.2009 - 15:04
(16) не спорь с (20) :))))))
(21) в обрабтке проведения есть параметр как раз для такого случая

Re: Вопрос грамотного создания универсального документа для ввода остатков

roma n
23 - 11.03.2009 - 15:06
"ибо форма банально не открывается" - её и не нужно открывать (в смысле показывать пользователю). СтатусВозврата творит чудеса
А в параметр можно передать что угодно - ТЗ, спиок значений, массив...

Re: Вопрос грамотного создания универсального документа для ввода остатков

Чучундер
24 - 11.03.2009 - 23:02
Лично меня из (0) интересует решение вопроса 1) - ибо столкнулся, но времени разгребать не было...

Re: Вопрос грамотного создания универсального документа для ввода остатков

Чучундер
25 - 11.03.2009 - 23:17
забираем отсюда: http://dump.ru/file/2003874
голый md с 2-мя вариантами универсальных двигателей регистров.
вставляем в свою конфигурацию.

Re: Вопрос грамотного создания универсального документа для ввода остатков

USSR
26 - 11.03.2009 - 23:38
Я бы не стал заморчиваться универсальным документом, в котором все несколько "зашифровано", а сделал "смысловые" документы начальных остаков, примерно как в типовой ТИС. И выдумывать ничего не надо и наглядно. Понятно что проще свернуть непонятно что в непонятно что, но регистры правят не каждый день, и не надо ни строк неограниченной длины, ни реквизитов неопределеного типа (по моему, максимум 23 символа ), ни ТЗ в строку и из строки

Re: Вопрос грамотного создания универсального документа для ввода остатков

Чучундер
27 - 12.03.2009 - 00:10
(26) все зависит от контекста... УД регистров - штука удобная, как рабочий набор спеца. Для повседневной работы юзеров - запретить!
К списку тем 1 > К списку форумов
Тема закрыта и находится в архиве.
Но Вы можете начать новую тему.
« Некорректное отображение реквизитов при печати в ТОРГ-12/ 1С 7-ка Печать внешнего файла »
© 2009 Форум 1С: Одинэс.Ру