Про1С-ник
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0
Цитата(Vofka @ 03.09.12, 13:27)
Цитата Да, кстати, а как же мне в форме заполнить ДополнительныеСвойства, если у меня там объекта еще нету?
глупый и никто не отвечает или же никто не знает ответа?
ПослеЗаписи Объект уже есть, соответственно в какой-то серверной процедуре можно взять из ДополнительныхСвойств чего-то. Т.е. в модуле при проведении записываем туда ссылку нового объекта, а в форме ПослеЗаписиНаСервере получаем ее. Только вот доступны ли ДополнительныеСвойства в форме...
Личные бесплатные консультации не даю, для этого есть форум!
Ну так формы то самой нету, в которой эти события определены. Ну т.е. в событии формы документа ПередЗаписью, как писали выше, надо данные в хранилище поместить, а потом извлечь и что-то с ними сделать. Но в форме списка нету событий не ПередЗаписью не ПослеЗаписи. Соответственно вопрос стоит в том, как вернуть адрес хранища с сервера на клиент?
Собственно, в форме списка документов (кстати он как правило представлен "ДинамическийСписок") такого нет в принципе. Посему вывод: подобный финт не возможен из формы списка, однако возможен из формы самого объекта. То есть, стандартными средствами не достижимо. Однако, можно извратится: - сделать кнопку на форме списка (со своей собственной процедурой/функцией вызова проведения того объекта на который спозиционированы). - в данной команде вызываем открытие формы объекта с передачей определенных параметров вызова. (думаю взаимодействие 2-х и более форм описывать не требуется). - потом получив из так не открывшейся (так надо задать в условиях данного вопроса насколько я понял) формы передаем контекст (привет 7.7)/ссылку на созданный объект. - ......... - PROFIT
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
Есть: - "документ 1" - создаем, зписываем/проводим, проводим существующий из формы списка. - "документ 2" - создается из модуля проведения (и проводится) документа1.
в догонку: - "документ 1", знает о наличии отсутствии (как вариант реквизит-ссылка) "документа 2".
Варианты: 1. "Документ 1" - проводится (и записывается ессно..) из собственной формы документа. 2. "Документ 1" - проводится/перепроводится (хотя не суть важно) из "ФормаСписка"/"ФормаВыбора" (как вариант еще журналы, но принцип тот-же).
Решения: 1-й вариант, вроде все ясно, отлавливаем событие "ПриЗаписи" объекта и так-как объект уже есть (опустим пока транзакционные особенности), то можно достучаться уже до "ДополнительныеСвойства". 2-й вариант сложнее, требуется модернизировать "ФормуДокумента" у "документ 1". Требуется ввести параметр формы (причем возможно "ключевой"). Далее перед открытием формы делать анализ, и передавать данные форме (списка) которая открыла форму с параметрами (необходимыми нам). ЗЫ: Думаю отдельная команда в списке тут в самый раз. Так-как мы частично повторяем пункт 1-й, то алгоритм надо прописывать с учетом вариаций вызова. Тут нам кстати пригодится структура "ПараметрыЗаписи", можно добавлять свои ключи.
Где-то как-то так...
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
Цитата(DartRomanius @ 03.09.12, 14:45)
1-й вариант, вроде все ясно, отлавливаем событие "ПриЗаписи" объекта и так-как объект уже есть (опустим пока транзакционные особенности), то можно достучаться уже до "ДополнительныеСвойства"
Так а как потом достучаться до дополнительных свойств в процедуре ПослеЗаписи из модуля формы на клиенте?
Так объект уже в базе.... события происходят уже после транзакции....
Объект в базе - не означает, что события происходят после транзакции...
ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) - еще можно влиять на значение реквизитов документа
ПриЗаписи(Отказ) - изменить реквизиты можно, но бесполезно (документ записан). Отказаться от проведения дока еще можно - транзакция продолжается!
Да к стати. Есть еще одна мыслишка на сервере доступна форма, может получится создать еще один служебный реквизит формы. Запихнуть туда уникальный идентификатор созданного дока и прочитать его на клиенте.
Никогда не бойся делать то, что не умеешь, помни - Ноев ковчег был построен любителем, профессионалы построили Титаник. ЗиУП
Объект в базе - не означает, что события происходят после транзакции...
ПередЗаписью(Отказ, РежимЗаписи, РежимПроведения) - еще можно влиять на значение реквизитов документа
ПриЗаписи(Отказ) - изменить реквизиты можно, но бесполезно (документ записан). Отказаться от проведения дока еще можно - транзакция продолжается!
Да к стати. Есть еще одна мыслишка на сервере доступна форма, может получится создать еще один служебный реквизит формы. Запихнуть туда уникальный идентификатор созданного дока и прочитать его на клиенте.
Не знаю, не знаю... Сам конечно экспериментально не пробовал, но согласно вышеприведенной выше ссылке на схему (собственно страница 832 из 1С:Предприятие 8.2 Практическое пособие разработчика) событие "ПослеЗаписиНаСервере" в серверной части формы, уже после транзакции записи происходит.
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
&НаСервере Процедура Тест() // как мне отсюда к дополнительным свойствам достучаться? // объекта того нету. И если мы даже получим тут объект - то это будет другой объект с пустыми дополнительными свойствами. КонецПроцедуры
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
Цитата(alex040269 @ 03.09.12, 17:01)
а как открыть форму, если есть ссылка на документ?
ОткрытьЗначение();
Но в моем случае используется не ссылка, а объект, т.к. ссылки ещё нету. Но не в этом суть, это так, небольшой отступ, который не является предметом обсуждения данной темы.
Цитата(alex040269 @ 03.09.12, 17:04)
[необходимо зарегистрироваться для просмотра ссылки]
У нас здесь своя атмосфера...
Группа: Основатель
Сообщений: 14050
Из: Киев
Спасибо сказали: 4612 раз
Рейтинг: 3748.8
Цитата(alex040269 @ 03.09.12, 20:38)
ну конфиг не совсем пучтой!!!
Перекачал, появилось 2 документа. Как добраться до объекта теперь я понял . Но ваш вариант немного не то, что надо, потому что вы создаете документ и записываете его, а мне надо без записи. Но с остальным я разобрался. Мой затык был в том, что я не знал, как потом добраться до текущего объекта. Тепер я понял к чему было сказано
Цитата(DartRomanius @ 03.09.12, 12:58)
Практическое пособие разработчика - 832 стр.
.
При решении воспользовался, как писали:
Цитата(pumbaE @ 03.09.12, 9:38)
Дополнительные свойства только на сервере или толстом клиенте. Создаем временное хранилище, проводим документ, во временное хранилище возвращаем ссылку и уже на клиенте делаем Ссылка.ОткрытьЗначение() .
Если будет время и не забуду, то на досуге оформлю в виде заметки как это сделать.
Сам в свое время мозги в гипсу держал. Теперь с ужасом сморю на формы "обыкновенные". Запомним как данность, объект существует даже если он не записан в базу, следовательно..... надеюсь продолжать не надо? Ссылка будет существовать (всегда) если объект записан в базу данных.
Ну и напомню прописные истины: Модуль формы (клиент) - не имеет доступа к данным, только к своему объекту и то ограниченно, и то с оговорками. Модуль формы (сервер) - имеет доступ к данным, но есть некоторые (относительно незначительные) особенности. Модуль (общий? объекта?) (сервер) - имеет доступ к данным.
За сим откланяюсь.
----------------------------------------------------------------------------------- Единственный, интуитивно понятный интерфейс - мамкина сиська! Всему остальному надо учиться! (с) Не знаю кто....
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!