Задача: создать N объектов в одной процедуре, записать их всех в другой #746880


#0 by e2e4
от ответвилась следующая задача: надо создать НЕ ЗАПИСЫВАЯ в одной процедуре (ОбработкаЗаполнения в модуле документа) N элементов справочника. Потом (когда документ проводится) их, наконец, записать в справочник. С первой частью удалось успешно справиться: А вот второй пункт плана пока не очень... Процедура ОбработкаПроведения(Отказ, Режим) ........какие будут идеи?...
#1 by mikecool
ты сам когда думать начнешь?
#2 by Лефмихалыч
я предлагаю позвать программиста
#3 by bolobol
В ТЧ объект не сохранить, там нет такого типа
#4 by Garykom
+1 и никогда не пытаться "записать" сторонние объекты "при проведении"
#5 by e2e4
дико плюсую, но если требования ТЗ дебильные, то я-то тут причем?
#6 by bolobol
А ссылка незаписанного объекта ссылается на несуществующий в базе объект, т.е. и получаете несуществующий.
#7 by bolobol
А раз уж на то пошло, хоть и пошло пошло, то создать ТЗ, синхронизированную с ТЧ, в одной из колонок ТЗ хранить сам объект.
#8 by e2e4
вот, и я так и думаю...а что делать-то? помимо (ха*3!)
#9 by Fish
Объяснить это тому, кто составил такое ТЗ, и предложить нормальный вариант реализации.
#10 by e2e4
то есть, объект все-таки записывать?))..тогда смысл...
#11 by bolobol
Нет, в ТЗ можно хранить тип ***.Объект, а не только ссылки, как в ТЧ. Там и хранить до момента записи.
#12 by Garykom
создавать (и сразу записывать) объекты при вводе(добавлении) новой строки в ТЧ
#13 by bolobol
Так превьюшки перед загрузкой, например, данных из другой базы делаются - ТЗ на форму с незаписанными, но полностью заполненными объектами.
#14 by Garykom
если эту строку ТЧ удалили или вообще док не стали записывать то просто пометить на удаление эти "созданные объекты"
#15 by e2e4
hello, cap!)) покумекаем...спасибо!
#16 by Garykom
а потом кто нибудь добавит что при записи объектов делаются исправления в документах каких то... и если это будут по совпадению того же вида документы то будет интересная цикла при проведении документов...
#17 by Лефмихалыч
При перепроведении что будет происходить? При изменении задним числом с перепроведением? При записи в режиме обмена данных? При восстановлении последовательности? нельзя так делать. Потому, что последствия будут проблемой того, кто куйню , а не того, кто куйню заказал
#18 by Лефмихалыч
а речь-то оказывается про создание серий
#19 by Garykom
как бы в он так и написал
#20 by Garykom
но такое впечатление что ТС с программированием вообще и БД каким то образом знаком, но только в теории или с реальными БД совсем не работал, по разным прикладным прогам хз
#21 by Бубка Гоп
Лучше повесь создание этих объектов на отдельную кнопочку, отдай это на откуп юзерам. Не надо к проведению цепляться.
#22 by e2e4
приходила эта хорошая мысль, но отвалилась по той же простой причине - а если юзер передумает проводить док? загаживать БД... вообще, умные люди советуют учиться каждый день. А то можно застыть в позе "а позовите-ка программиста [==меня]" надолго, и прохлопать собственную профдеградацию... раскрою секрет - теоретически подкован намного лучше, чем практически знаком с 1С (особенно восьмеркой). К сожалению, среди "спецов 1С" очень часто встречается обратный перекос - гораздо труднее устранимый. (сорри за ответную колкость;))
#23 by hhhh
вроде наоборот, вы практик. Потому что в теории такого  как в вообще не может быть.
#24 by e2e4
в каждой новой для себя среде я первым делом стараюсь нащупать границы дозволенного))
#25 by e2e4
но, да - в я имел в виду теоретическую подкованность в "программировании вообще и БД", а вот теоретический базис 1С изучаю. Как раз нащупыванием границ))
#26 by Garykom
загадить бд пустыми неиспольземыми нигде объектами нестрашноявно никогда кучу дублей наколоченных юзверями не чистили
#27 by Бубка Гоп
если боитесь загадить - можно написать регламентное. Раз в неделю будут удаляться объекты, созданные из непроведенных документов, например. Авторам будут прописываться розги прелюдно.
#28 by e2e4
даа....помню, в одном проекте (Perl+MySql) 2 миллиона пустых мусорных записей в справочнике)) - программист небольшую ошибочку сделал, вовремя не обнаружили:D
#29 by bolobol
Да уж, два миллиона не обнаружить - это говорит об особой важности справочника)
#30 by Лефмихалыч
фалометрия детектед. У дельфина 50см - ни кто не выиграл
#31 by ILM
События и отложенные регламенты вам в помощь, хотя я против такой архитектуры.
#32 by e2e4
согласен на ничью:D а тут, коллеги, вмешалась ее величество математика - в виде геометрической прогрессии. Этот справочник (как и куча других) тягался из центральной базы в региональные при каждой репликации. Из-за ошибки программиста он тягался и обратно в ЦБ (как обычные таблицы-факты), причем, по схеме репликации, каждой записи справочника присваивалась метка региональной БД. Поэтому ЦБ воспринимала эти записи как новые - и вставляла их себе в этот же справочник, снова помечая их своими. При следующей репликации ВСЕ записи эти записи опять отправлялись в регионы...И снова из каждой РБ возвращались и вставлялись в ЦБ! :D При этом, каждый регион видел только записи с пометкой ЦБ - поэтому никто из пользователей ничего дурного не замечал. Разве что процедура репликации чуть затягивалась... А когда я пришел в проект и стал расковыривать систему изнутри, мне часто приходилось проводить процедуру ПОЛНОЙ репликации - и она занимала от 20 минут до... в общем, смотря какой проц (его ресурсы сжирались на 100%, вентиляторы крутились как бешеные, обогреватель в квартире был не нужен!:))) Пока не расковырял, в чем дело.
#33 by ХардHard
Было или нет . Транзакции предлагали?
#34 by Serg_1960
Фи, тривиальное решение предлагать - себя не уважать.
#35 by ХардHard
Хз , я такое обычно в них делаю. Простите убогого.)
#36 by e2e4
О! нет еще (тут в основном пока piсями мерялись) копну! спасибо)
#37 by Serg_1960
Ооо... вспомнил, я же делал подобную гадость для заказчика :) Надо создавать новые объекты, заполнять их и, когда новый документ записывается в базу) - записывать в хранилище значений, а ссылки на хранилище - в ТЧ документа. Когда документ проводится (а с момента записи до момента проведения много времени может пройти - вот зачем нужно хранилище) - доставать из хранилища и записывать в справочник. Бред, конечно, однозначно, но за ваши деньги - любой каприз.
#38 by Lamer1C
тему не читал - транзакции уже предлагали?
#39 by mTema32
[:|||:] :)
#40 by dmpl
Делай все в обработке, которая и заполненный документ создаст, и нужные объекты.
#41 by dmpl
На крайний случай можно поступить как 1С в РС СписанныеТовары в партионном учете: в обработке заполнения добавляешь строки в РС, какие объекты надо создать, после записи - создаешь нужные объекты и удаляешь строки из РС.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С