|
Как создать на основании не новый документ? | ☑ | ||
---|---|---|---|---|
0
toypaul
гуру
05.06.17
✎
14:39
|
При вводе на основании нужен такой алгоритм: ищем помеченный на удаление в этом году, если есть снимаем пометку и заполняем, если нет, работает типовой механизм. Ну есс-но дальше открывается форма документа.
Как лучше всего подменить типовой механизм? |
|||
1
Heckfy
05.06.17
✎
14:43
|
Стандартно:
СтандартнаяОбработка=Ложь; :) |
|||
2
torgm
05.06.17
✎
14:43
|
(0) А если на него ссылок дофея?
|
|||
3
Адинэснег
05.06.17
✎
14:44
|
это как?
|
|||
4
toypaul
гуру
05.06.17
✎
14:45
|
(2) на него не должно быть дофея ссылок. это последний в цепочке документ, на основании которого ничего не создается.
|
|||
5
Адинэснег
05.06.17
✎
14:45
|
ааа...
|
|||
6
toypaul
гуру
05.06.17
✎
14:47
|
(1) если при создании в форме, то это понятный, но не очень "красивый" вариант. будет двойное заполнение на основании
|
|||
7
Buster007
05.06.17
✎
14:48
|
Сделать свой ввод на основании с блэкджеком и далее
|
|||
8
Адинэснег
05.06.17
✎
14:48
|
скопировать обработку заполнения (в ней бывает проверка ЭтоНовый() - как раз для ввода на основании)
Стандартная = ложь; Найти Док Если Найден ПолучитьОбъект Иначе СоздатьДОкумент Вызвать обработку заполнения |
|||
9
Heckfy
05.06.17
✎
14:49
|
(6) Сфигали двойное?
|
|||
10
toypaul
гуру
05.06.17
✎
14:50
|
(9) ну а где надо ставить СтандартнаяОбработка=Ложь;
|
|||
11
Адинэснег
05.06.17
✎
14:51
|
чтоб "двойного" не было передай свойство объекта типа ЭтоХитроВывернутоеЗаполнение
в обработке заполнения помимо проверки ЭтоНовый() проверяй свойство ЭтоХитроВывернутоеЗаполнение |
|||
12
cw014
05.06.17
✎
14:52
|
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ОбработкаЗаполнения (Filling) Синтаксис: ОбработкаЗаполнения(<ДанныеЗаполнения>, <ТекстЗаполнения>, <СтандартнаяОбработка>) СП тебе в помощь |
|||
13
Heckfy
05.06.17
✎
14:54
|
(10) Ну тут думать надо.... :)
|
|||
14
Адинэснег
05.06.17
✎
14:54
|
+(12) И
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) ДополнительныеСвойства (AdditionalProperties) Использование: Только чтение. Описание: Тип: Структура. Может использоваться в тех случаях, когда необходимо хранить некоторые значения, связанные с объектом, на время выполнения некоторых операций, без изменения объекта. Например, при обработке событий в подписке на события. |
|||
15
Ёпрст
05.06.17
✎
14:54
|
(0) Уф ? ОФ ?
|
|||
16
toypaul
гуру
05.06.17
✎
14:54
|
(12) я могу в обработке заполнения поменять Ссылку на нужную мне?
если нет, чем оно поможет. |
|||
17
toypaul
гуру
05.06.17
✎
14:55
|
(15) УФ
|
|||
18
Джинн
05.06.17
✎
14:55
|
(0) Явно кривизна в архитектуре.
|
|||
19
toypaul
гуру
05.06.17
✎
14:56
|
(18) я прямо очень нуждался в диагнозах. прям жить без них не мог.
|
|||
20
Heckfy
05.06.17
✎
14:56
|
(18) Не стреляйте в пианиста (ой, архитектора). Он играет (строит), как может. :)
|
|||
21
RomanYS
05.06.17
✎
14:57
|
(0) идея вообще нездоровая.
А так бери ссылку найденного документа, его удаляй и УстановитьСсылкНового(...) |
|||
22
Heckfy
05.06.17
✎
14:58
|
(21) Так то предложенный вариант тоже не фонтан.
|
|||
23
Адинэснег
05.06.17
✎
14:59
|
(21) <ОбъектНеНайден>
|
|||
24
RomanYS
05.06.17
✎
14:59
|
(22) да смысл телодвижений вообще непонятен.
|
|||
25
RomanYS
05.06.17
✎
15:00
|
(23) это-то к чему здесь?
|
|||
26
Адинэснег
05.06.17
✎
15:00
|
(25) к сылочной целостности
|
|||
27
Адинэснег
05.06.17
✎
15:01
|
или сделай как в РТиУ, ссылку на СФ и навешай алгоритм
|
|||
28
Ёпрст
05.06.17
✎
15:05
|
(17) я не заморачивался, делал через допреквизит, в котором ссылка на документ:
в форме дока: &НаКлиенте Процедура ПриОткрытии(Отказ) Если ЗначениеЗаполнено(Объект.мУжеЕстьДокумент) Тогда Отказ = Истина; ОткрытьЗначение(Объект.мУжеЕстьДокумент); КонецЕСли; КонецПроцедуры в модуле дока: Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка) Попытка м = ДанныеЗаполнения.Метаданные(); Исключение Возврат; КонецПопытки; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Ссылка |ИЗ | Документ..... |ГДЕ | ДокументОснование = &ДокументОснование"; Запрос.УстановитьПараметр("ДокументОснование", ДанныеЗаполнения); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Если Выборка.Следующий() Тогда мУжеЕстьДокумент = Выборка.Ссылка; СтандартнаяОбработка = Ложь; Возврат; КонецЕсли; |
|||
29
Джинн
05.06.17
✎
15:06
|
(19) Не стоит благодарности.
|
|||
30
toypaul
гуру
05.06.17
✎
15:10
|
(21) мне от помеченного документа нужен только номер. наверное так и попробую. возьму номер, удалю.
|
|||
31
RomanYS
05.06.17
✎
15:12
|
(30) А в (0) это нельзя было написать?
|
|||
32
программистище
05.06.17
✎
15:14
|
(30) только хотел предложить, но сам уже решил
|
|||
33
Адинэснег
05.06.17
✎
15:20
|
Док 1 - основание
Док 2 - вводимый на основании Док 2 Модуль объекта Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка) Если ЭтоНовый() Тогда Основание = ДанныеЗаполнения; ДокУжеЕсть = ДокУжеЕсть(ДанныеЗаполнения); Если ДокУжеЕсть <> Неопределено Тогда ЭтотОбъект.ДополнительныеСвойства.Вставить("ДокУжеЕсть", ДокУжеЕсть); КонецЕсли; КонецЕсли; КонецПроцедуры Функция ДокУжеЕсть(Основание) Запрос = Новый Запрос("ВЫБРАТЬ | Док2.Ссылка КАК Ссылка |ИЗ | Документ.Док2 КАК Док2 |ГДЕ | Док2.Основание = &Основание"); Запрос.УстановитьПараметр("Основание", Основание); Результат = Запрос.Выполнить(); Если Не Результат.Пустой() Тогда Выборка = Результат.Выбрать(); Выборка.Следующий(); Возврат Выборка.Ссылка; КонецЕсли; КонецФункции Док 2 Модуль формы документа Процедура ПриОткрытии() Если ДополнительныеСвойства.Свойство("ДокУжеЕсть") Тогда ЭтаФорма.Закрыть(); Об = ДополнительныеСвойства.ДокУжеЕсть.ПолучитьОбъект(); Об.Заполнить(Об.Основание); Фрм= Об.ПОлучитьФОрму("ФормаДокумента"); Фрм.Открыть(); КонецЕсли; КонецПроцедуры |
|||
34
Адинэснег
05.06.17
✎
15:25
|
(28) и реквизит не нужен -> (33)
|
|||
35
toypaul
гуру
05.06.17
✎
15:29
|
хотя ... если удалять старый, то новый могут не записать. и привет. номер потерялся.
|
|||
36
Heckfy
05.06.17
✎
15:29
|
(26) Так то, если перед удалением срисовать старый ГУИД, а при записи нового документа этот ГУИД подсовывать. В транзакцию засунуть надо бы, на случай сбоя, что бы битые ссылки не получить. То.... Но, тоже ничего хорошего. :):):)
(30) -> (23). Тогда уж перед удалением сделай НайтиПоСсылкам и если что то найдено, то отказ. Тормозить правда будет. :) :) :) |
|||
37
Heckfy
05.06.17
✎
15:30
|
(35) Блин, да что же за глубинный смысл то у задачи??
|
|||
38
toypaul
гуру
05.06.17
✎
15:31
|
глубинный смысл в том чтобы использовать номера помеченных на удаление документов
|
|||
39
Buster007
05.06.17
✎
15:32
|
(0) я вот не пойму, тебе вера не позволяет что ли сделать свою кнопку ввода на основании?
|
|||
40
Heckfy
05.06.17
✎
15:33
|
(38) Ёмнить :). А может проще помеченные на удаление чистить регл. заданием, а в свойствах конфы указать автоматическое освобождение номеров?
|
|||
41
toypaul
гуру
05.06.17
✎
15:34
|
(40) "свойствах конфы указать автоматическое освобождение номеров" это еще чо такое?
|
|||
42
Ёпрст
05.06.17
✎
15:35
|
(33) ДополнительныеСвойства {(1,1)}: Переменная не определена (ДополнительныеСвойства)
|
|||
43
Ёпрст
05.06.17
✎
15:35
|
это в ПриОткрытии.
|
|||
44
Ёпрст
05.06.17
✎
15:36
|
я ужо не помню, почему слепил через реквизит ( в коде тоже есть куски в модуле с ДополнительныеСвойства, видать не взлетело, а сделать надо было "вчера")
|
|||
45
Heckfy
05.06.17
✎
15:37
|
(41) ПКМ по конфе - свойства. Пятая снизу: Режим автонумерации объектов: Установить в "Освобождать автоматически"
|
|||
46
toypaul
гуру
05.06.17
✎
15:37
|
(45) совсем не то это
|
|||
47
Serg_1960
05.06.17
✎
15:39
|
На 38-ом посту стало наконец-то понятно что автору нужно. А нужно ему просто найти пропуск в последовательности нумерации :))
|
|||
48
Адинэснег
05.06.17
✎
15:53
|
(42) УФ да, хз как
|
|||
49
Адинэснег
05.06.17
✎
15:55
|
+(48) на форме структура уже пустая ...
РеквизитФормыВЗначение("Объект").ДополнительныеСвойства |
|||
50
Адинэснег
05.06.17
✎
15:59
|
+(50) тогда тупо в форме дока при открытии проверять объект на Пустая() + Реквизит "основание", искать док, если есть закрывать текущую форму, открывать существующего дока
|
|||
51
Ёпрст
05.06.17
✎
16:21
|
(48) Вот и грю - слепил реквизит и забил/забыл :)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |