Имя: Пароль:
1C
1С v8
Заявка на ввод нового элемента справочника
, , ,
0 extrim-style
 
17.12.12
16:01
Необходимо вводить новый элемент справочника заявкой. Элемент справочника записывается после согласования заявки. В заявке кроме реквизитов самой заявки необходимо также заполнить реквизиты нового элемента справочника. Не хотелось бы дублировать реквизиты справочника в реквизитах заявки. Как этот процесс лучше реализовать?
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
Попробовал использовать версионирование - всё получается, но в регистр записывал объект с пустой ссылкой. Теперь хочу получить ссылку на объект, но отказаться от записи, и в таком виде сохранить версию. Можно так сделать?
В процедуре ПриЗаписиНаСервере модуля формы уже доступна ссылка на объект и есть возможность отказаться от записи. Если я откажусь от записи, и сохраню Справочник.Объект (с уже имеющейся ссылкой) с помощью версионирования, то ссылка сохранится? Пытался проверить, но пока не получается это реализовать. Подскажите, кто что может, люди добрые =).