|
{Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(36,18)}: Переменная не определена | ☑ | ||
---|---|---|---|---|
0
gmo666
06.01.20
✎
18:26
|
{Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(36,18)}: Переменная не определена (Заказы)
НоваяСтрока = <<?>>Заказы.Добавить(); (Проверка: Сервер) В форме документа: &НаСервере Процедура Заполнить(ДанныеЗаполнения) Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументОбъект.БанковскаяВыписка") Тогда // Заполнение шапки Клиент = ДанныеЗаполнения.Клиент; Склад = ДанныеЗаполнения.Склад; Для Каждого ТекСтрокаЗаказы Из ДанныеЗаполнения.Заказы Цикл НоваяСтрока = Заказы.Добавить(); НоваяСтрока.Количество = ТекСтрокаЗаказы.Количество; НоваяСтрока.Сумма = ТекСтрокаЗаказы.Сумма; НоваяСтрока.Товар = ТекСтрокаЗаказы.Товар; НоваяСтрока.Цена = ТекСтрокаЗаказы.Цена; КонецЦикла; КонецЕсли; КонецПроцедуры В чем проблема? |
|||
1
craxx
06.01.20
✎
18:30
|
Скорее всего должно быть Объект.Заказы.Добавить()
|
|||
2
gmo666
06.01.20
✎
18:32
|
В строке НоваяСтрока = Заказы.Добавить(); - ошибка.
Записал как НоваяСтрока = ТекСтрокаЗаказы.Добавить(); - ошибки нет. Но, при создании нового документа Расходная накладная кнопка "Заполнить" не выполняется. |
|||
3
gmo666
06.01.20
✎
18:34
|
(1) Вписал Объект.Заказы.Добавить(); - ошибки нет.
Но форма всё равно не заполняется (по кнопке "Заполнить"). |
|||
4
ДенисЧ
06.01.20
✎
18:36
|
А что в РасходнойНакладной появилась ТЧ Заказы? О_о
|
|||
5
hhhh
06.01.20
✎
18:38
|
(3) а почему у вас Заполнить() на сервере? Если это команда или кнопка такая "Заполнить", то должно быть на клиенте
|
|||
6
gmo666
06.01.20
✎
18:39
|
В режиме предприятия при нажатии на кнопку "Заполнить"
Тип не определен (ДокументОбъект.БанковскаяВыписка) в режиме конфигуратора: {Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(31)}: Тип не определен (ДокументОбъект.БанковскаяВыписка) Если ТипЗнч(ДанныеЗаполнения) = Тип("ДокументОбъект.БанковскаяВыписка") Тогда |
|||
7
gmo666
06.01.20
✎
18:41
|
исправил &НаКлиенте
Все равно не заполняется, и ошибка Тип не определен (ДокументОбъект.БанковскаяВыписка) |
|||
8
hhhh
06.01.20
✎
18:41
|
(6) документа значит нет такого в конфигурации
|
|||
9
acht
06.01.20
✎
18:46
|
Вот! Разработка Яростным Тыком. А вы говорите TDD, BDD, сонары там разные ...
|
|||
10
gmo666
06.01.20
✎
18:51
|
Документ БанковскаяВыписка есть. И на её основе заполняется документ РасходнаяНакладная.
НО, мне надо это сделать через кнопку "Заполнить" |
|||
11
craxx
06.01.20
✎
18:57
|
(10) тебя научить вызывать штатную процедуру ОбработкаЗаполнения() по кнопке?
|
|||
12
gmo666
06.01.20
✎
19:00
|
Это делается вводом на основании.
|
|||
13
ДенисЧ
06.01.20
✎
19:00
|
(9) Ну так Tyik driven Development...
|
|||
14
gmo666
06.01.20
✎
19:00
|
Но мне надо сделать через кнопку "Заполнить"
|
|||
15
gmo666
06.01.20
✎
19:02
|
(9) Это тебе, дружище)
«Пробивайся вперёд: ничто на свете не заменит настойчивости. Её не заменит талант — нет ничего обычнее талантливых неудачников. Её не заменит гениальность — нереализованный гений уже стал притчей во языцех. Её не заменит хорошее образование — мир полон образованных изгоев. Всемогущи лишь настойчивость и упорство.» ―Джон Калвин Кулидж Цитаты - http://tsitaty.com «Я не думаю, что есть другое качество, столь необходимое для успеха любого рода, как настойчивость. Настойчивость может преодолеть всё, даже законы природы.» ―Джон Рокфеллер Цитаты - http://tsitaty.com |
|||
16
craxx
06.01.20
✎
19:02
|
(14) ну так и вызывай из кнопки ввод на основании)) в чем сложность?
|
|||
17
gmo666
06.01.20
✎
19:05
|
(16) Это как раз и получается.
Но, по заданию от работодателя надо сделать по кнопке "Заполнить". |
|||
18
gmo666
06.01.20
✎
19:07
|
Во всех документах реквизиты, табличные части с реквизитами табличных частей - одинаковые.
Почему не заполняется? |
|||
19
gmo666
06.01.20
✎
19:12
|
(4) Табличная часть и в Расходной накладной и Заказе Клиента одинаковая.
|
|||
20
gmo666
06.01.20
✎
19:45
|
(11) Научи, друг мой.
|
|||
21
craxx
06.01.20
✎
19:59
|
(20) РеквизитФормыВЗначение("Объект").Заполнить(ДанныеЗаполнения);
|
|||
22
AlvlSpb
06.01.20
✎
21:02
|
(3) А откуда берутся ДанныеЗаполнения? Судя по &НаСервере - это модуль формы, значит ДанныеЗаполнения должны где-то создаваться. Где? Что в них? Отладчик что показывает?
|
|||
23
gmo666
06.01.20
✎
22:59
|
(21) А можно в развернутом виде. Заранее благодарю
|
|||
24
gmo666
06.01.20
✎
23:15
|
(22) Данные заполнения уже есть в Банковской выписке.
Последовательность следующая: Документ "ЗаказКлиента" -> Документ "БанковскаяВыписка"(подтверждение оплаты заказа) -> РасходнаяНакладная (отгрузка) Так вот, у всех этих документов реквизиты и табличные части одинаковые. ЗаказКлиента является основанием для БанковскойВыписки, а та в свою очередь является основанием для РасходнойНакладной. Это всё я сделал через механизм ввода на основании. НО, мне надо чтобы "РасходнаяНакладная" заполнялась данными проведенного документа "БанковскаяВыписка". Кнопку "заполнить" в командной панели добавил. Нужно, чтобы так же как и через механизм ввода на основании заполнялся бы документ "РасходнаяНакладная". |
|||
25
gmo666
06.01.20
✎
23:22
|
(4) Ничего не появилось
|
|||
26
AlvlSpb
07.01.20
✎
00:17
|
(25) В стандартном варианте, ДанныеЗаполнения - параметр стандартного обработчика ОбработкаЗаполнения, ну и связанных с ним процедур. Но все это происходит в модуле объекта. В модуле формы ты должен сам каким-то образом получить структуру данных заполнения. Отладчиком встань на ДанныеЗаполнения, что показывает? Думаю - Неопределено
|
|||
27
gmo666
07.01.20
✎
00:56
|
(26) Пробовал так:
&НаКлиенте Процедура Заполнить(ПинкиИБрэйн) Если ТипЗнч(ПинкиИБрэйн) = Тип("ДокументОбъект.БанковскаяВыписка") Тогда // Заполнение шапки Клиент = ПинкиИБрэйн.Клиент; Склад = ПинкиИБрэйн.Склад; Для Каждого ТекСтрокаЗаказы Из ПинкиИБрэйн.Заказы Цикл НоваяСтрока = Объект.Заказы.Добавить(); НоваяСтрока.Количество = ТекСтрокаЗаказы.Количество; НоваяСтрока.Сумма = ТекСтрокаЗаказы.Сумма; НоваяСтрока.Товар = ТекСтрокаЗаказы.Товар; НоваяСтрока.Цена = ТекСтрокаЗаказы.Цена; КонецЦикла; КонецЕсли; КонецПроцедуры Ошибка в нажатии на кнопку "Заполнить": Тип не определен (ДокументОбъект.БанковскаяВыписка) -------------------------------------------------------------------------------------------------- А если так: &НаКлиенте Процедура Заполнить(Команда) ОснРеквизит = Объект; ВыполнитьНаСервереБезКонтекста(ОснРеквизит); КопироватьДанныеФормы(ОснРеквизит,Объект) КонецПроцедуры &НаСервереБезКонтекста Процедура ВыполнитьНаСервереБезКонтекста(ОснРеквизит) ОбъектЗначение = ДанныеФормыВЗначение(ОснРеквизит, Тип("ДокументОбъект.БанковскаяВыписка")); //...Выполнение операций с Объектом "ОбъектЗначение" ЗначениеВДанныеФормы(ОбъектЗначение, ОснРеквизит); КонецПроцедуры То появляется ошибка: Документ.РасходнаяНакладная.Форма.ФормаДокумента.Форма(58)}: Ошибка при вызове метода контекста (ДанныеФормыВЗначение) ОбъектЗначение = ДанныеФормыВЗначение(ОснРеквизит, Тип("ДокументОбъект.БанковскаяВыписка")); по причине: Недопустимое значение параметра (параметр номер '1') Недопустимое значение параметра (параметр номер '1') То есть, указывает на строку ОбъектЗначение = ДанныеФормыВЗначение(ОснРеквизит, Тип("ДокументОбъект.БанковскаяВыписка")); |
|||
28
AlvlSpb
07.01.20
✎
01:08
|
(27) ДЛя тебя абсолютно не понятно что такое НаКлиенте и НаСервере, Реквизит формы и реквизит объект, что такое модуль формы и модуль объекта или менеджера, отладчик неизвестен. Извини, но проще нанять специалиста. Разъяснить - это как минимум какой-то экспресс курс нужен
|
|||
29
Chameleon1980
07.01.20
✎
06:55
|
автор скажи это у тебя жизненно-важная задача?
нет - начни с азов. ты, походу, не втыкаешь в то, что пишешь. |
|||
30
hhhh
07.01.20
✎
07:57
|
(27) ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>)
ДокументОбъект.<Имя документа> (DocumentObject.<Имя документа>) Свойства: <Имя общего реквизита> (<Common attribute name>) <Имя реквизита> (<Attribute name>) <Имя табличной части> (<Tabular section name>) ВерсияДанных (DataVersion) Дата (Date) Движения (RegisterRecords) ДополнительныеСвойства (AdditionalProperties) Номер (Number) ОбменДанными (DataExchange) ПометкаУдаления (DeletionMark) ПринадлежностьПоследовательностям (BelongingToSequences) Проведен (Posted) Ссылка (Ref) ЭтотОбъект (ThisObject) Методы: Заблокирован (IsLocked) Заблокировать (Lock) Записать (Write) Заполнить (Fill) Метаданные (Metadata) Модифицированность (Modified) МоментВремени (PointInTime) ПолучитьМакет (GetTemplate) ПолучитьСсылкуНового (GetNewObjectRef) ПолучитьФорму (GetForm) ПроверитьЗаполнение (CheckFilling) Прочитать (Read) Разблокировать (Unlock) Скопировать (Copy) Удалить (Delete) УстановитьВремя (SetTime) УстановитьНовыйНомер (SetNewNumber) УстановитьПометкуУдаления (SetDeletionMark) УстановитьСсылкуНового (SetNewObjectRef) ЭтоНовый (IsNew) События: ОбработкаЗаполнения (Filling) ОбработкаПроведения (Posting) ОбработкаПроверкиЗаполнения (FillCheckProcessing) ОбработкаУдаленияПроведения (UndoPosting) ПередЗаписью (BeforeWrite) ПередУдалением (BeforeDelete) ПриЗаписи (OnWrite) ПриКопировании (OnCopy) ПриУстановкеНовогоНомера (OnSetNewNumber) Описание: Предназначен для чтения, изменения, добавления и удаления документов. Важно! У всех событий этого объекта назначены предопределенные процедуры-обработчики. Имена процедур соответствуют именам событий. Процедуры должны располагаться в модуле документа. Доступность: Сервер, толстый клиент, внешнее соединение, мобильное приложение(сервер). Данный объект может быть сериализован в/из XML. Данный объект может быть сериализован в/из XDTO. Тип XDTO, соответствующий данному объекту, определяется в пространстве имен {http://v8.1c.ru/8.1/data/enterprise/current-config}. Имя типа XDTO: DocumentObject.<Имя документа>. Пример: НовыйДок = Документы.ПеремещениеТоваров.СоздатьДокумент(); НовыйДок.Дата = ПолеВводаДаты; НовыйДок.УстановитьВремя(); НовыйДок.УстановитьНовыйНомер(); // Формирование табличной части Для Н=1 По N Цикл НоваяСтрока = НовыйДок.Товары.Добавить(); НоваяСтрока.Номенклатура = СтрокаДанных.Номенклатура; // формируются другие реквизиты табличной части ... // КонецЦикла; НовыйДок.Записать(); СписокДокументов.Добавить(НовыйДок.Ссылка); как видишь, на клиенте нет ДокументОбъект, делайте эту строчку НаСервере |
|||
31
craxx
07.01.20
✎
08:53
|
(23) извини, но у меня обучение платное
|
|||
32
gmo666
12.01.20
✎
18:20
|
(28) Ну объясни тогда, умник)
Форум для того и существует) |
|||
33
gmo666
12.01.20
✎
18:21
|
(29) Не строй из себя гуру)
Мог бы просто объяснить) А не страдать) |
|||
34
Мимохожий Однако
12.01.20
✎
18:23
|
(32) Форум не для этого. ) Прими это философски.
|
|||
35
Chameleon1980
13.01.20
✎
04:59
|
(33)по ушам получишь
|
|||
36
D_E_S_131
13.01.20
✎
11:53
|
(32) Типа устраиваешься на работу программистом не имея даже базовых знаний и потом участники форума за тебя работу выполняют?
|
|||
37
seevkik
13.01.20
✎
11:56
|
(36) Почему "типа"?)
|
|||
38
GROOVY
13.01.20
✎
12:16
|
Не, сначала они сертификаты получают :) https://www.facebook.com/p.chistov/posts/10217326042757993
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |