|
Заявка на ввод нового элемента справочника | ☑ | ||
---|---|---|---|---|
0
extrim-style
17.12.12
✎
16:01
|
Необходимо вводить новый элемент справочника заявкой. Элемент справочника записывается после согласования заявки. В заявке кроме реквизитов самой заявки необходимо также заполнить реквизиты нового элемента справочника. Не хотелось бы дублировать реквизиты справочника в реквизитах заявки. Как этот процесс лучше реализовать?
|
|||
1
zak555
17.12.12
✎
16:02
|
что за элемент такой ?
|
|||
2
exwill
17.12.12
✎
16:03
|
Чего только люди не придумают!
А почему бы и не дублировать? В чем проблема? |
|||
3
MSII
17.12.12
✎
16:05
|
Регистр сведений, после создания элемента справочника запись в регистре убавить.
|
|||
4
exwill
17.12.12
✎
16:07
|
(3) РС-то зачем?
|
|||
5
extrim-style
17.12.12
✎
16:13
|
(1) не суть. Реквизитов много.
(2) форма элемента справочника вполне себе самодостаточна, зачем мне её дублировать? (3) не хотелось бы заморачиваться с РС. Можно ли хранить СправочникОбъект в реквизите заявки? Т.е. создаю новый элемент справочника, но не записываю его. При проведении заявки выгружаю этот реквизит как новый элемент справочника. |
|||
6
shuhard
17.12.12
✎
16:13
|
(5) отменная трава
|
|||
7
extrim-style
17.12.12
✎
16:14
|
(6) да)
|
|||
8
Defender aka LINN
17.12.12
✎
16:15
|
(5) Особенно весело потом будет такой объект сравнивать с данными базы.
|
|||
9
extrim-style
17.12.12
✎
16:15
|
(8) потом мне не нужно его сравнивать
|
|||
10
pessok
17.12.12
✎
16:16
|
(9) потом его нужно просто записать? :)
|
|||
11
extrim-style
17.12.12
✎
16:17
|
(10) я имею ввиду после записи сравнивать не нужно
|
|||
12
MSII
17.12.12
✎
16:17
|
(5) Тогда записывай сразу, а заявкой просто акцептуй. Флаг соответствующий в справочник добаить придется.
|
|||
13
exwill
17.12.12
✎
16:17
|
(5) Увы. В реквизитах не хранятся объекты. В реквизитах хранятся ссылки.
|
|||
14
extrim-style
17.12.12
✎
16:18
|
(12) не хотелось. В справочнике много элементов. Будет громоздкий отбор по этому флагу.
|
|||
15
MSII
17.12.12
✎
16:20
|
(14) Вам, Петровым, не угодишь. :) Тогда делай РС. Одно измерение, один ресурс, чего там морочиться?
|
|||
16
pessok
17.12.12
✎
16:20
|
(14) будь мыжиком, пошли того, кто ставил задание в пеший эротический тур, блеать!
|
|||
17
extrim-style
17.12.12
✎
16:23
|
(13) а заполненную форму?
|
|||
18
Kashemir
17.12.12
✎
16:23
|
(5) Можно - сериализируй и заверни в хранилище. Проблема будет если вдруг изменения конфы по справочнику пройдут - уже не развернешь.
|
|||
19
MSII
17.12.12
✎
16:25
|
(4) Чтобы в заявке не хранить. Создал заявку - она пишет в РС, акцептовал заявку - она удаляет запись. Работы на 2 часа.
|
|||
20
Шапокляк
17.12.12
✎
16:25
|
(0) Извращенное задание, конечно. А если поступить так: Скопировать справочник Контрагенты в конфигураторе и обозвать копию, скажем, "Заявки на контрагента", после чего добавить еще реквизиты, связанные с визированием. И на основании этого справочника организовать ввод элемента справочника Контрагенты при наличии таких галок?
|
|||
21
Kashemir
17.12.12
✎
16:25
|
+(18)
СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>) Данный объект может быть сериализован в/из XML. Данный объект может быть сериализован в/из XDTO. |
|||
22
extrim-style
17.12.12
✎
16:26
|
(18) да, я вот так и думал. Не понял, какие изменения по справочнику?
|
|||
23
MSII
17.12.12
✎
16:27
|
(22) Изменения в метаданных.
|
|||
24
exwill
17.12.12
✎
16:27
|
(17) Можно, как в (18). Только дублирование реквизитов и формы намного проще.
|
|||
25
extrim-style
17.12.12
✎
16:27
|
(20) интересная мысль, надо подумать.
|
|||
26
exwill
17.12.12
✎
16:28
|
+(24) Один драг энд дроп. < 1 сек.
|
|||
27
Kashemir
17.12.12
✎
16:29
|
(24) Захламлять конфу лишними метаданными вовсе не проще.
(22) Любые изменения конфы, касающиеся данного объекта не дадут ему развернуться - ибо уже не будут совпадать с изначальной схемой сериализации. По хорошему лучше обойти все реквизиты и ТЧ и завернуть все в структуру. И еще уже в хранилище. Тогда не страшны будут любые изменения конфы. |
|||
28
extrim-style
17.12.12
✎
16:29
|
(26) лень - двигатель прогресса
|
|||
29
MaxisUssr
17.12.12
✎
16:33
|
(0)
Если нужно, чтобы "заявки" видело ограниченное число лиц: Я бы ввел новый реквизит, далее RLS. Или так (отталкиваемся от (27)): создаем новый документ (или справочник) "Заявка на создание элемента справочника X". В нем создаем две ТЧ: одну с колонками "ИмяРеквизита" (строка) и "Значение" (тип ЛюбаяСсылка). Вторая ТЧ будет содержать 3 колонки: "ИмяТабличнойасти", "Значение", "НомерСтроки" (число). Вроде ничего не забыл. |
|||
30
MSII
17.12.12
✎
16:34
|
(20) Данные дублируются, плюс в дальнейшем придется за синхронностью метаданных следить.
|
|||
31
samozvanec
17.12.12
✎
16:36
|
(0) разрешить добавлять элементы справочника только определенному пользорвателю, для остальных - док заявка с просьбой добавить. элементы добавлять документом выполнение заявки.
|
|||
32
extrim-style
17.12.12
✎
16:37
|
(29)(31) не нужно ничего ограничивать. Задача в (0)
(30) Данные необходимо контролировать, как мне представляется, только на этапе ввода, т.к. дальше в заявке просто храню ссылку на записанный элемент справочника. |
|||
33
MSII
17.12.12
✎
16:39
|
(32) Ну. О том и речь, что данные дважды хранить не нужно. Тебе (15)+(27), вот все что нужно.
|
|||
34
MaxisUssr
17.12.12
✎
16:40
|
(32)
Тогда читай (29) вторую часть. Чем через ТЧ не устраивает? При желании (если уж очень нужно) сможешь сделать возможность предварительно просматривать утверждаемую заявку. |
|||
35
Kashemir
17.12.12
✎
16:41
|
(34) Удалить запись из РС проще чем элемент справочника - отпадает проблема контроля ссылочной целостности.
|
|||
36
extrim-style
17.12.12
✎
16:42
|
(34) я не понял в чем там суть? Задублировать реквизиты, от которых я хочу отказаться?
|
|||
37
MaxisUssr
17.12.12
✎
16:47
|
(35) Тогда соглашусь
(36) Сами реквизиты дублировать не придется - данные могут храниться в виде "Ключ-Значение". т.е. у тя в справочнике или документе были бы реквизиты "Номер заявки", "Дата утверждения заявки", а еще табчасть "Реквизиты заявки". В табчасти 3 строки (по количеству реквизитов элемента справочника) - первая строка имеет значения "Ключ" = "Код", "Значение" = 001 вторая строка "Ключ" = "Наименование", "Значение" = "...", третья строка например "Реквизит1", значение = ссылка на что-то |
|||
38
Maxus43
17.12.12
✎
16:51
|
мы сделали по другому, объект в базу вобще не записывается, пакуется в xml и выстреливается в другую базу, там согласовывают и потом обратно летит и записывается
|
|||
39
extrim-style
17.12.12
✎
16:57
|
(37) ну т.е. суть - ты предлагаешь заполнять ТЧ на основании метаданных необходимого справочника?
|
|||
40
Kashemir
17.12.12
✎
17:06
|
(39) Не ТЧ, а ТЗ. Хотя мне кажется удобнее структура.
|
|||
41
extrim-style
18.12.12
✎
11:16
|
(40) В связи с тем, что заявка, возможно, будет и для других справочников, решил попробовать формировать ТЗ на основе метаданных справочника. Тип реквизита в справочнике может быть любой. В ТЗ 2 колонки - Реквизит, Значение. Для колонки Значение выбрал типы - Строка, Число, Дата, Булево, ЛюбаяСсылка. Вопрос: как заполнить колонку пустыми значениями соответствующего типа на основании метаданных?
Для каждого Эл из Метаданные.Справочники.ИмяСправочника.Реквизиты Цикл НовСтр = Объект.ТабличнаяЧасть1.Добавить(); НовСтр.Реквизит = Эл.Имя; Если Эл.Тип.СодержитТип(Тип("Строка")) Тогда НовСтр.Значение = ""; Иначе ... КонецЕсли; КонецЦикла; |
|||
42
Юрий Лазаренко
18.12.12
✎
11:20
|
(0) Прилепить к заявке вложенный файл в формате xls с шаблоном Реквизит -> Значение.
|
|||
43
Юрий Лазаренко
18.12.12
✎
11:21
|
+(42) Ну и создавать-заполнять новый элемент на основе этого шаблона обработкой.
|
|||
44
Юрий Лазаренко
18.12.12
✎
11:23
|
(0) Поместить на HTML-поле заявки html-форму. Юзер заполняет необходимые реквизиты. После согласования заявки ответственный товарищ на этой html-форме жмет кнопку "Ввести новый элемент", кнопка дергает GET-запросом веб-сервис, тот создает элемент.
|
|||
45
extrim-style
18.12.12
✎
11:24
|
(42) в частности, чтобы уйти от формирования в екселе, заявка вводится непосредственно в базе.
|
|||
46
Юрий Лазаренко
18.12.12
✎
11:25
|
(45) Ну это понятно, что прям в базе. В базе заявка, к ней привинчен xls-файл, юзер его заполнил и сохранил. После согласования автоматом создается элемент.
|
|||
47
extrim-style
18.12.12
✎
11:25
|
(44) Как-то мудрёно. Вопрос в том, как установить типы значений (значения по умолчанию) для реквизитов на основании метаданных? То, что в (41), как то не true.
|
|||
48
extrim-style
18.12.12
✎
11:27
|
(46) это не вариант. Пользователь должен выбирать из типизированных/предопределенных данных, иначе будет разброд и шатание.
|
|||
49
Юрий Лазаренко
18.12.12
✎
11:27
|
(47) Тогда поле табличного документа, у него для ячеек можно задавать тип для значения. Табличный документ можно формировать автоматом на основе метаданных, так что такой алгоритм подойдет для нескольких видов справочников.
|
|||
50
Юрий Лазаренко
18.12.12
✎
11:28
|
(48) Ага, понял уже, тогда можно попробовать (49)
|
|||
51
extrim-style
18.12.12
✎
11:29
|
(49) так об этом и речь. Есть ТЗ, которая выносится на форму и заполняется. Вопрос в том, как заполнить?
|
|||
52
Юрий Лазаренко
18.12.12
✎
11:30
|
(51) "Вопрос в том, как заполнить?" - кому заполнить, юзеру или алгоритму?
|
|||
53
extrim-style
18.12.12
✎
11:31
|
(52) мне, т.е. алгоритму -> (41)
|
|||
54
Юрий Лазаренко
18.12.12
✎
11:34
|
(53) Легко:
Если Эл.Тип.СодержитТип(Тип("Справочник.Контрагенты")) Тогда НовСтр.Значение = Справочники.Контрагенты.ПустаяСсылка(); Иначе ... КонецЕсли; Просто пихаешь туда пустое значение нужного типа. Во всяком случае раньше такие фокусы прокатывали. |
|||
55
extrim-style
18.12.12
✎
11:35
|
(54) ))) да не тип справочника, а типы реквизитов справочника.
|
|||
56
Artful Den
18.12.12
✎
11:35
|
(0) Может тебе проще статусы номенклатуры ввести? Активная-неактивная? По неактивным - согласование или в треш, активные используются в работе.
|
|||
57
Kashemir
18.12.12
✎
11:36
|
(41) Эл.Тип.ПривестиЗначение(Зн)
|
|||
58
extrim-style
18.12.12
✎
11:36
|
(56) -> (14)
|
|||
59
Юрий Лазаренко
18.12.12
✎
11:36
|
(56) Да ну, это конфу допиливать придется, учитывать флажок активности в доках/отчетах.
|
|||
60
Юрий Лазаренко
18.12.12
✎
11:37
|
(55) Я понял ) Если у тебя тип реквизита "Справочник.Договора", то при открытии формы для заполнения в пустое поле для заполнения этого реквизита пихаешь Справочник.Договора.ПустаяСсылка()
|
|||
61
Artful Den
18.12.12
✎
11:38
|
(59) там допил минимальный - запретить в форме выбора номенклатуры в доках использовать неактивные позиции...
|
|||
62
Юрий Лазаренко
18.12.12
✎
11:38
|
(61) Я бы не стал так делать. Лучше таки запретить ввод ненужного.
|
|||
63
extrim-style
18.12.12
✎
11:40
|
(57) я не могу сделать приведение типа для колонки ТЗ. Для колонки установлены возможные типы (41). Теперь мне нужно прсото установить пустое значение соответствующего типа.
|
|||
64
extrim-style
18.12.12
✎
11:40
|
+(63) для каждого НовСтр.Значение
|
|||
65
Kashemir
18.12.12
✎
11:40
|
(63) Ну и что тебе мешает привести каждое значение к типу ?
|
|||
66
Юрий Лазаренко
18.12.12
✎
11:41
|
(64) У тебя УФ? Я на УФ это точно делал, счас гляну.
|
|||
67
extrim-style
18.12.12
✎
11:41
|
(60) как это сделать универсально на основе метаданных?
|
|||
68
extrim-style
18.12.12
✎
11:41
|
(66) УФ
|
|||
69
Юрий Лазаренко
18.12.12
✎
11:43
|
(68) Вот:
&НаСервере Процедура ПодготовитьСтруктуруРеквизитовЗадачиНаСервере() Перем ПустойИсточник; Перем ПустаяДата; ПустойИсточник = Перечисления.КэнИсточникиДанныхДляШаблоновЗадач.ПустаяСсылка(); ПустаяДата = Дата('00010101'); СтруктураРеквизитовЗадачиПустая = Новый ТаблицаЗначений; СтруктураРеквизитовЗадачиПустая.Колонки.Добавить("ИмяРеквизита"); СтруктураРеквизитовЗадачиПустая.Колонки.Добавить("ПредставлениеРеквизита"); СтруктураРеквизитовЗадачиПустая.Колонки.Добавить("ИсточникДанных"); СтруктураРеквизитовЗадачиПустая.Колонки.Добавить("ЗначениеРеквизита"); СтруктураРеквизитовЗадачиПустая.Колонки.Добавить("ЗначениеРеквизитаПоУмолчанию"); НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "Наименование"; НоваяСтрока.ПредставлениеРеквизита = "Наименование"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = ""; НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = ""; НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "Проект"; НоваяСтрока.ПредставлениеРеквизита = "Проект"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = Справочники.КэнПроекты.ПустаяСсылка(); НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = Справочники.КэнПроекты.ПустаяСсылка(); НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "ВидЗадачи"; НоваяСтрока.ПредставлениеРеквизита = "Вид задачи"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = Справочники.КэнВидыЗадач.ПустаяСсылка(); НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = Справочники.КэнВидыЗадач.ПустаяСсылка(); НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "Заказчик"; НоваяСтрока.ПредставлениеРеквизита = "Заказчик"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = Справочники.КэнЗаказчики.ПустаяСсылка(); НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = Справочники.КэнЗаказчики.ПустаяСсылка(); НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "Приоритет"; НоваяСтрока.ПредставлениеРеквизита = "Приоритет"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = 0; НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = 0; НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "ДлительностьВ"; НоваяСтрока.ПредставлениеРеквизита = "Длительность в..."; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = Перечисления.КэнВидыПериодов.ПустаяСсылка(); НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = Перечисления.КэнВидыПериодов.ПустаяСсылка(); НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "ДлительностьПлан"; НоваяСтрока.ПредставлениеРеквизита = "Длительность (план)"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = 0; НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = 0; НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "ДатаНачалаПлан"; НоваяСтрока.ПредставлениеРеквизита = "Дата начала (план)"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = ПустаяДата; НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = ПустаяДата; НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "ДатаЗавершенияПлан"; НоваяСтрока.ПредставлениеРеквизита = "Дата завершения (план)"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = ПустаяДата; НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = ПустаяДата; НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "КрайнийСрок"; НоваяСтрока.ПредставлениеРеквизита = "Крайний срок"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = ПустаяДата; НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = ПустаяДата; НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "Описание"; НоваяСтрока.ПредставлениеРеквизита = "Описание"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = ""; НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = ""; НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "КритерииУспешногоВыполнения"; НоваяСтрока.ПредставлениеРеквизита = "Критерии успешного выполнения"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = ""; НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = ""; НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "Автор"; НоваяСтрока.ПредставлениеРеквизита = "Автор"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = Справочники.Пользователи.ПустаяСсылка(); НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = Справочники.Пользователи.ПустаяСсылка(); НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "Инициатор"; НоваяСтрока.ПредставлениеРеквизита = "Инициатор"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = Справочники.КэнИсполнителиЗадач.ПустаяСсылка(); НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = Справочники.КэнИсполнителиЗадач.ПустаяСсылка(); НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "Ответственный"; НоваяСтрока.ПредставлениеРеквизита = "Ответственный"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = Справочники.КэнИсполнителиЗадач.ПустаяСсылка(); НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = Справочники.КэнИсполнителиЗадач.ПустаяСсылка(); НоваяСтрока = СтруктураРеквизитовЗадачиПустая.Добавить(); НоваяСтрока.ИмяРеквизита = "Исполнитель"; НоваяСтрока.ПредставлениеРеквизита = "Исполнитель"; НоваяСтрока.ИсточникДанных = ПустойИсточник; НоваяСтрока.ЗначениеРеквизита = Справочники.КэнИсполнителиЗадач.ПустаяСсылка(); НоваяСтрока.ЗначениеРеквизитаПоУмолчанию = Справочники.КэнИсполнителиЗадач.ПустаяСсылка(); КонецПроцедуры |
|||
70
Юрий Лазаренко
18.12.12
✎
11:44
|
У меня присваивание типа происходит явно:
НоваяСтрока.ЗначениеРеквизита = Справочники.Пользователи.ПустаяСсылка(); |
|||
71
Юрий Лазаренко
18.12.12
✎
11:44
|
У тебя тип просто надо формировать динамически, условиями
|
|||
72
Kashemir
18.12.12
✎
11:45
|
(67) Все понятно
|
|||
73
extrim-style
18.12.12
✎
11:45
|
(68) Смеешься? Я как раз и хочу уйти от заполнения ручками. (0) смотри.
|
|||
74
extrim-style
18.12.12
✎
11:46
|
(71) "просто"
|
|||
75
Юрий Лазаренко
18.12.12
✎
11:47
|
(73) Это мне было?
(74) А чего там сложного? |
|||
76
extrim-style
18.12.12
✎
11:53
|
(75) я не знаю как, подскажи.
|
|||
77
Юрий Лазаренко
18.12.12
✎
11:56
|
(76) Блин ))
|
|||
78
Юрий Лазаренко
18.12.12
✎
12:03
|
(76) Прошу простить, но мне пора уже к своей работе приступить ) Думаю, по этому вопросу можно найти инфу в инете. Отталкиваться надо от кода в (41), для строка, чисел и дат там все подойдет. Для ссылочных типов всего-то по имени типа надо понять кто это: "Справочник" или "Документ" (в имени типа это есть), там же в имени типа есть и имя справочника/документа.
|
|||
79
extrim-style
18.12.12
✎
12:05
|
(78) еще как минимум перечисление.
|
|||
80
Юрий Лазаренко
18.12.12
✎
12:07
|
(79) Ну там тоже все просто, все есть в имени типа
|
|||
81
Юрий Лазаренко
18.12.12
✎
12:08
|
Определяешь по имени типа тип объекта и дальше несколько веток Если - ИначеЕсли - КонецЕсли, по одной ветке для каждого типа (СТрока, дата, число, перечисление, справочник, документ)
|
|||
82
extrim-style
18.12.12
✎
12:27
|
(81) понятно, то же, что в (41). Звучит просто, но не получается.
|
|||
83
cw014
18.12.12
✎
12:30
|
(0) Пока справочник не записан - его реквизиты ты получить не сможешь, поэтому либо дублируй реквизиты, из которых будет заполняться справочник, либо оставляй пустыми все поля, пока не будет согласование заявки
|
|||
84
extrim-style
18.12.12
✎
12:33
|
(83) я могу получить реквизиты из метаданных. Возможно ли универсально получить пустую ссылку на основе типа значения, содержащего ссылку?
|
|||
85
cw014
18.12.12
✎
12:34
|
(84) Зачем?
|
|||
86
cw014
18.12.12
✎
12:34
|
(84) Она у тебя итак пустая, пока ты не присвоил туда ничего
|
|||
87
extrim-style
18.12.12
✎
12:34
|
Еще вариант - выбрать любой элемент справочника, и заполнять на его основе, но вероятно, некоторые справочники изначально могут быть пустыми.
|
|||
88
extrim-style
18.12.12
✎
12:35
|
(86) у меня там куча типов, а нужен 1.
|
|||
89
Юрий Лазаренко
18.12.12
✎
12:36
|
(87) Предопределенный элемент сделать, пустой, из него заполнять значения.
|
|||
90
extrim-style
18.12.12
✎
12:36
|
Возможно ли универсально получить пустую ссылку из типа, содержащего ссылку?
|
|||
91
extrim-style
18.12.12
✎
12:37
|
(89) как сделать пустой универсально, если я имею к примеру, 2 справочника с различным набором реквизитов?
|
|||
92
024410
18.12.12
✎
12:39
|
я это вопрос решал правами, например, справочник номенклатура все пользователи кроме ответственных за номенклатуру могут создавать элементы в специальной папке, но номенклатура из этой папке не может участвовать в проводках (подписка на событие). Т.е. пользователи создают ответственные проверяют и перекладывают в другую папочку. все
|
|||
93
extrim-style
18.12.12
✎
12:41
|
(92) сабж не о правах
|
|||
94
024410
18.12.12
✎
12:45
|
(93) я понимаю, просто предлагаю обходное решение ИМХО более простое чем заявки, как бы они не были реализованы.
|
|||
95
extrim-style
18.12.12
✎
12:49
|
(92) да. спасибо. я понял. надо подумать.
|
|||
96
extrim-style
18.12.12
✎
12:51
|
+(96) подумал) это не подойдет, т.к. в заявке есть сопутствующая информация - ответственный, контакты и прочее - которые не требуются для справочника.
|
|||
97
cw014
18.12.12
✎
12:53
|
(91) А у тебя как определяется, какой справочник должно быть?
|
|||
98
extrim-style
18.12.12
✎
12:55
|
(97) пока он 1, но в дальнейшем, думаю, будет 3, а может и больше.
|
|||
99
cw014
18.12.12
✎
12:57
|
(98)Если НуженСправочник = 1 тогда
Реквизит = Справочники.Справочник1.ПустаяСсылка(); ИначеЕсли НуженСправочник = 2 тогда Реквизит = Справочники.Справочник2.ПустаяСсылка(); Иначе Реквизит = Справочники.Справочник3.ПустаяСсылка(); КонецЕсли; |
|||
100
extrim-style
18.12.12
✎
13:02
|
(99) мне не нужна ссылка на справочник (см. (55)). Мне нужны пустые ссылки на ссылочные типы реквизитов справочника.
|
|||
101
extrim-style
18.12.12
✎
13:03
|
+(100) "из ссылочных типов"
|
|||
102
Юрий Лазаренко
18.12.12
✎
13:19
|
(100) Так в (99) и предлагаются пустые ссылки на ссылочные типы
|
|||
103
024410
18.12.12
✎
13:30
|
По ходу ты можешь получить форму справочника - затавить пользователя заполнить ее, добавить свои реквизиты, записать это добро в стуктуру типа ИмяРеквиита, Значение - структуру хапихнуть в хранилище значений и прицепить к своей заявки, потом генерить форму и заполнять ее из сохраненной структуры.
по поводу варианта (92) - можно доп реквизиты писать в свойства, а потом вытерать их от туда после проверки. |
|||
104
extrim-style
19.12.12
✎
10:57
|
Всё-же решил давать пользователю заполнять форму нового элемента справочника, сохранять значения, после согласования записывать новый элемент, а в заявке сохранять ссылку на него.
Только теперь возникла проблема хранения, я так понимаю - ДанныеФормыСтруктура. Как сохранить такой тип данных в ХранилищеЗначений? |
|||
105
extrim-style
19.12.12
✎
10:58
|
+(104) всмысле данные из этого типа. Если даже обойти его нельзя.
|
|||
106
extrim-style
19.12.12
✎
11:04
|
РеквизитФормыВЗначение можно тут использовать?
|
|||
107
extrim-style
19.12.12
✎
11:05
|
+(106) сорри - ДанныеФормыВЗначение
|
|||
108
neckto
19.12.12
✎
11:12
|
Оформить заявку в сторонней программе (напр. Документооборот). Текст заявки: "Прошу добавить контрагента ...". К Заявке прикреплять сканы учредительных документов контрагента. Ввод контрагента в базу, после согласования.
|
|||
109
extrim-style
19.12.12
✎
11:17
|
(108) спасибо за вариант, но это не вариант)
|
|||
110
neckto
19.12.12
✎
11:19
|
Почему?
|
|||
111
extrim-style
19.12.12
✎
11:19
|
Как проще всего сохранить данные формы?
|
|||
112
extrim-style
19.12.12
✎
11:24
|
(110) потому что это делается на отдельной ИБ, имеющей в себе все необходимые данные для ведения в данном случае справочников.
|
|||
113
Нуф-Нуф
19.12.12
✎
11:25
|
добавить бизнес-процесс согласования и ввода
|
|||
114
extrim-style
19.12.12
✎
11:35
|
(113) и каким образом это можно применить тут?
|
|||
115
extrim-style
19.12.12
✎
11:48
|
(107) разобрался: Данные = ДанныеФормыВЗначение(ДанныеФормыСтруктура, Тип("СправочникОбъект.ИмяСправочника"));
|
|||
116
Vladimirr
19.12.12
✎
12:02
|
(0) Делаешь документ "Заявка на создание справочника"
в Шапке реквизит "Тип справочника" в ТЧ реквизиты "ИмяРеквизита" и "ЗначениеРеквизита" Другие данные по желанию. При записи проверка статуса. Если статус "согласовано" - создаешь элемент. Это если кратко. |
|||
117
extrim-style
19.12.12
✎
12:04
|
(116) ТЧ уже обсуждалась выше. Не к чему плодить сущности.
|
|||
118
Vladimirr
19.12.12
✎
12:07
|
(117) Извини. Не подошло?
|
|||
119
extrim-style
19.12.12
✎
12:18
|
Конфа на основе БСП. В БСП есть ВерсионированиеОбъектов. Кто работал с ним, подскажите - можно там хранить данные? А то непонятно описание - http://its.1c.ru/db/bspdoc#content:17:1. Или там только история хранится? Вроде Если я получаю СправочникОбъект из (107), а затем использую версионирование без записи нового элемента в справочник? То есть храню в регистре ВерсииОбъектов предыдущее состояние без записи элемента справочника, а записываю новый?
|
|||
120
MSII
19.12.12
✎
12:19
|
(119) Там хранится именно версия объекта.
|
|||
121
extrim-style
19.12.12
✎
12:20
|
(120) отлично. ушел копать.
|
|||
122
extrim-style
19.12.12
✎
12:22
|
+(111) кстати, к вопросу хранения данных. Посмотрел как там оно организовано:
ЗаписьXML = Новый ЗаписьFastInfoset; ЗаписьXML.УстановитьДвоичныеДанные(); ЗаписьXML.ЗаписатьОбъявлениеXML(); ЗаписатьXML(ЗаписьXML, Объект, НазначениеТипаXML.Явное); ДвоичныеДанные = ЗаписьXML.Закрыть(); ХранилищеДанных = Новый ХранилищеЗначения(ДвоичныеДанные, Новый СжатиеДанных(9)); жесть... |
|||
123
kiruha
19.12.12
✎
12:28
|
(117)
Вам нужна заявка или нет ? Если нужна - нужен документ Если не нужна - не нужен. Что из 2 предложений не понятно ? Вам все четко написали Разберитесь с собой для начала |
|||
124
extrim-style
19.12.12
✎
12:34
|
(123) тему читал?
|
|||
125
kiruha
19.12.12
✎
12:53
|
(124)
Читал Офигевал Есть гипотеза - велели сделать заявку, но Вы считаете это не разумным, но вместо того, чтобы прямо сказать начальству - начинаете конструировать всякие приблуды,которые потом кому то придется разгребать |
|||
126
extrim-style
19.12.12
✎
14:05
|
(126) бери выше...
|
|||
127
mikecool
19.12.12
✎
14:10
|
все не читал
варианта 2 1) сразу записывать, но париться с отборами по всем формам, чтобы не показывать 2) формировать структуру с данными реквизитов, пихать в ХЗ, в момент подтверждения - доставать структуру, по возможности заполнять данными(на случай изменения конфиги) |
|||
128
extrim-style
24.12.12
✎
14:28
|
Попробовал использовать версионирование - всё получается, но в регистр записывал объект с пустой ссылкой. Теперь хочу получить ссылку на объект, но отказаться от записи, и в таком виде сохранить версию. Можно так сделать?
В процедуре ПриЗаписиНаСервере модуля формы уже доступна ссылка на объект и есть возможность отказаться от записи. Если я откажусь от записи, и сохраню Справочник.Объект (с уже имеющейся ссылкой) с помощью версионирования, то ссылка сохранится? Пытался проверить, но пока не получается это реализовать. Подскажите, кто что может, люди добрые =). |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |