|
Как получить ссылку на этот же объект? | ☑ | ||
---|---|---|---|---|
0
Sorento
15.05.24
✎
12:18
|
На форме вот такой код:
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | РеализацияТоваровУслуг.Номер КАК Номер, | РеализацияТоваровУслуг.Дата КАК Дата, | РеализацияТоваровУслуг.Склад КАК Склад, | РеализацияТоваровУслуг.Организация КАК Организация, | РеализацияТоваровУслуг.Контрагент КАК Контрагент, | РеализацияТоваровУслуг.МестоСоставленияДокумента КАК МестоСоставленияДокумента |ИЗ | Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг |ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекДок"; Запрос.УстановитьПараметр("ТекДок", Объект.СсылкаНаОбъект); РезультатРТУ = Запрос.Выполнить().Выгрузить(); мОрг=РезультатРТУ[0].Организация;
|
|||
1
Sorento
15.05.24
✎
12:20
|
Добавляю как печатную форму, открываю с документа реализация , получаю ошибку "индекс находится за границами массива"
|
|||
2
Amra
15.05.24
✎
12:22
|
СсылкаНаОбъект там тип скорее всего ДокументОбъект, а не ДокументСсылка....
|
|||
3
Builder
15.05.24
✎
12:24
|
ну хоть посмотри что там у тебя и тип правильный установи. Наверняка не заполнил ничего.
Сообщить(Объект.СсылкаНаОбъект) |
|||
4
lEvGl
гуру
15.05.24
✎
12:26
|
или строка или справочник или число, типов много, кто знает что там
|
|||
5
Fedor-1971
15.05.24
✎
12:28
|
(3) чуть не так Сообщить("Тип ссылки: " + Строка(ТипЗнч(Объект.СсылкаНаОбъект)));
(0) надо бы проверить наличие СсылкаНаОбъект в Объекте |
|||
6
Михаил Козлов
15.05.24
✎
12:28
|
Реквизиты документа прямо из Объект.ТекДок получить неохота?
|
|||
7
Sorento
15.05.24
✎
12:28
|
Здесь если заполнил ничего не изменилось
|
|||
8
Sorento
15.05.24
✎
12:28
|
там если не ошибаюсь и должно быть произвольный
|
|||
9
Amra
15.05.24
✎
12:30
|
(7) Тогда смотри (5) прям внимательно....
|
|||
10
Sorento
15.05.24
✎
12:31
|
(6), Если пишу Объект. (могу подставить только СсылкаНаОбъект) тоисть реквизит с обробки своей, но там значение произвольное, тоисть я ничего не получаю, если я правильно понимаю
|
|||
11
Builder
15.05.24
✎
12:32
|
СсылкаНаОбъект как и где заполняешь?
|
|||
12
lEvGl
гуру
15.05.24
✎
12:32
|
копать-копать... нах-нах.
(6) прям снайпер, если так попасть получится. снайпер-ванга - название новой профессии |
|||
13
Sorento
15.05.24
✎
12:33
|
(9), получил сообщение реализация товаров и услуг
|
|||
14
Sorento
15.05.24
✎
12:34
|
(11), ну добавил реквизит + тип произвольный, и с запроса хочу чтоб он заполнился
|
|||
15
Sorento
15.05.24
✎
12:34
|
(11), Запрос.УстановитьПараметр("ТекДок", Объект.СсылкаНаОбъект);
|
|||
16
Sorento
15.05.24
✎
12:35
|
не понимаю как присвоить ему значение именно текущего открытого
|
|||
17
lEvGl
гуру
15.05.24
✎
12:35
|
ыыыыыы
|
|||
18
DJ Anthon
15.05.24
✎
12:37
|
(6) в типовых не так сделано, лучше учиться с типовых конфигураций
|
|||
19
Sorento
15.05.24
✎
12:40
|
а если произвольный тип поставил тогда тип ссылки неопределено
|
|||
20
DJ Anthon
15.05.24
✎
12:41
|
(15) в форме документа Объект - это твой документ, а в твоей печатной форме Объект - это обработка, СсылкаНаОбъект - ссылка на документ. хочешь обратиться к реквизиту этого документа - пиши Объект.СсылкаНаОбъект.МойРеквизит. Но у тебя не получится, потому что Объект.СсылкаНаОбъект должно передаваться в функцию, которая уже работает с параметром. код, который работает в форме документа, во внешней печатной форме должен быть модифицирован под неё. Есть же куча ВПФ в инете, скачай и сделай по подобию.
|
|||
21
Мультук
гуру
15.05.24
✎
13:10
|
(0)
Если внешняя печатная форма, например, для УТ10 -- это одно. И СсылкаНаОбъект (насколько помню из этой оперы) А для УТ 11.x -- это уже другое. P.S. Автор, ты или дальше играй в партизана или пиши имя и версию конфигурации |
|||
22
maxab72
15.05.24
✎
13:18
|
А я бы еще добавил
Если РезультатРТУ.Количество() Тогда мОрг=РезультатРТУ[0].Организация; Иначе Сообщить("Все в сад!"); КонецЕсли |
|||
23
Sorento
15.05.24
✎
13:19
|
(21), Business automation software for accounting CORP, edition 2.1 (2.1.25.5)// 8.3 (8.3.22.2411)
|
|||
24
Sorento
15.05.24
✎
13:23
|
(22), зачем?
|
|||
25
Мультук
гуру
15.05.24
✎
13:26
|
(23)
Круто. Судя по всему управляемые формы ? https://www.youtube.com/watch?v=YyHKH93apgI Ну тогда придется читать, например https://www.1s-up.ru/sozdanie-vneshnej-pechatnoj-formy-v-tipovyh-konfiguracijah-1s-8-3/ |
|||
26
maxab72
15.05.24
✎
13:26
|
(24) Потому что если запрос ничего не возвращает, он выдаект "индекс находится за границами массива" на команде РезультатРТУ[0]. Попытка спозиционировать на первом элементе пустой список.
|
|||
27
Мультук
гуру
15.05.24
✎
13:29
|
(26)
Непонятно только как такое может произойти в печатной форме. Пока Вася нажимал кнопку "Печать" в документе, Маня успела нажать сделать этому документу Shift+Del на другом компьютере ? Или как ? |
|||
28
maxab72
15.05.24
✎
13:32
|
(27) А документ записан?
Я бы перед печатью, ради чистого извращения, доюавил бы начало транзакции, записал бы документ, отпечатал, и откатил бы транзакцию назад... чтоб при обращении к запросу ссылка существовала бы. А откат транзакции позволил бы существующей ссылке существовать, а несуществующей несуществовать далее. |
|||
29
Sorento
15.05.24
✎
13:33
|
(28), документ записан и проведен
|
|||
30
kubik_live
15.05.24
✎
13:34
|
"Добавляю как печатную форму, открываю с документа реализация" - вот отсюда копать надо - в ВПФ МассивОбъектов как правило передается
|
|||
31
Sorento
15.05.24
✎
13:34
|
(25),
"Ну тогда придется читать, например https://www.1s-up.ru/sozdanie-vneshnej-pechatnoj-formy-v-tipovyh-konfiguracijah-1s-8-3/" Сейчас прочитаю, похоже то что нужно, если найду решение-напишу сюда |
|||
32
1Снеговик
гуру
15.05.24
✎
13:35
|
(1) а с чего ты взял, что в таблице РезультатРТУ есть хоть одна строка, что ты так нагло и без проверки пишешь РезультатРТУ[0] ?? Вот и получай ошибку индекса. Я бы таких увольнял)
|
|||
33
maxab72
15.05.24
✎
13:35
|
(29) Тогда смотреть, что содержится здесь "Объект.СсылкаНаОбъект", как и рекомендовали выше.
|
|||
34
1Снеговик
гуру
15.05.24
✎
13:40
|
(2) поэтому надо писать что-то типа
Если ОбщегоНазначенияКлиентСервер.ЕстьРеквизитИлиСвойствоОбъекта(СсылкаНаОбъект, "Ссылка") Тогда ТекДок = СсылкаНаОбъект.Ссылка; Иначе ТекДок = СсылкаНаОбъект; КонецЕсли; |
|||
35
Sorento
15.05.24
✎
13:43
|
(32), потому, что когда я присвоил тип реквизита СсылкаНаОбъект реализация товаров и услуг, поставил на форму кнопку выбора документа реализации, и выбирал реализацию, по дебагу пробежался и посмотрел что получаю, информация там содержиться, потом добавил в 1ску внешнюю обработку, и получаеться как: открываю документ - печатать - выбираю обработку - открываеться окно формы, там выбираю еще раз этот документ и получаю то что нужно
|
|||
36
Pprog151713
15.05.24
✎
13:41
|
Так у тебя Объект.СсылкаНаОбъект это не реализация. )
|
|||
37
Sorento
15.05.24
✎
13:45
|
(36), ну я убрал потому что хочу избавиться от 2го раза выбора документа
|
|||
38
Sorento
15.05.24
✎
13:50
|
(34), если добавляю твой код, тогда вообще не понимает что такое СсылкаНаОбъект, сразу 3 ошибки
|
|||
39
Sorento
15.05.24
✎
13:52
|
сейчас прочитаю " https://www.1s-up.ru/sozdanie-vneshnej-pechatnoj-formy-v-tipovyh-konfiguracijah-1s-8-3/ " Если найду решение - напишу его сюда
|
|||
40
kubik_live
15.05.24
✎
13:53
|
(39) Процедура Печать(МассивОбъектов....)
см (30) |
|||
41
1Снеговик
гуру
15.05.24
✎
13:55
|
(38) потому что конечно Объект.СсылкаНаОбъект
Но ты сделал чушь, когда добавил произвольный реквизит. Там должен быть ДокументСсылка.РеализацияТоваровУслуг Ну в крайнем случае ДокументСсылка. |
|||
42
Sorento
15.05.24
✎
14:02
|
(41), если поменять на ДокументСсылка.РеализацияТоваровУслуг выдает ошибку: Переменная не определена (ДокументСсылка)
Запрос.УстановитьПараметр("ТекДок", <<?>>ДокументСсылка.РеализацияТоваровУслуг); |
|||
43
maxab72
15.05.24
✎
14:04
|
(42) А как во внешнюю печатную форму передаете ссылку на документ?
|
|||
44
Sorento
15.05.24
✎
14:04
|
если присвоить тип СсылкаНаОбъект = ДокументСсылка.РеализацияТоваровУслуг , и потом вызвать Объект.СсылкаНаОбъект) тогда ошибка "индекс находится за границами массива"
|
|||
45
Builder
15.05.24
✎
14:04
|
(42) Все, это провал.... :)
|
|||
46
Sorento
15.05.24
✎
14:07
|
(43) Делал так, присвоил реквизиту СсылкаНаОбъект = тип реализация товаров и услуг. Потом вытянул его на форму, и на форме уже выбираеш какой тебе именно документ нужен с реализации и все работает
|
|||
47
maxab72
15.05.24
✎
14:08
|
(46) А дальше что сделали?
|
|||
48
Sorento
15.05.24
✎
14:08
|
ну правда сам факт того что это не удобно, тоисть ты выбираеш документ, потом нажимаеш печатать, потом опять выбираеш документ нажимаеш печать и только тогда получаеш ВПФ, а я хочу сразу получать ВПФ
|
|||
49
maxab72
15.05.24
✎
14:10
|
(48) Хотеть не запрещено. Вопрос остается открытым. Как вы передаете ссылку на документ в ВПФ?
|
|||
50
Sorento
15.05.24
✎
14:10
|
(47), дальше посмотрел видео на ютубе там поставили произвольный тип, в Запросе делают так как я сделал
|ГДЕ | РеализацияТоваровУслуг.Ссылка = &ТекДок"; Запрос.УстановитьПараметр("ТекДок", Объект.СсылкаНаОбъект); и у них работает а у меня ошибка "индекс находится за границами массива" |
|||
51
Sorento
15.05.24
✎
14:12
|
(49), да получаеться что никак, в этом и проблема, я не понимаю как передать ссылку открытого документа в реквизит
|
|||
52
maxab72
15.05.24
✎
14:12
|
(50) Переформулирую вопрос. Откуда ВПФ должна знать, к какому документу она является печатной формой?
|
|||
53
maxab72
15.05.24
✎
14:15
|
(51) Попробуйте передать ее при вызове формы ВПФ. Вы же вызываетет ее из формы конкретного документа. Способов масса. Как типовых (через БСП), так и не типовых. Например можно что-то дописать в функции по нажатии на кнопку Печать.
|
|||
54
Sorento
15.05.24
✎
14:15
|
(52), ну это логично, вот и я не понимаю "откуда она должна знать к какому документу она является печатной формой" как передать ей даные, кроме как добавить реквизит на форму в поле выбора
|
|||
55
Sorento
15.05.24
✎
14:16
|
(53), хм
|
|||
56
maxab72
15.05.24
✎
14:17
|
(54) Свяжите этот реквизит на форме с реквизитом обработки и при ее вызове передавайте в него ссылку.
|
|||
57
Builder
15.05.24
✎
14:32
|
(54) Что написано в модуле обработки в функции СведенияОВнешнейОбработке() ?
|
|||
58
Sorento
15.05.24
✎
14:42
|
(57),
|
|||
59
Prog_man
гуру
15.05.24
✎
14:54
|
(58) скачай какую ни будь готовую форму, и посмотри как сделано.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |