Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 19:14

Синтаксис 1с82

Автор alpopo, 01 дек 2010, 22:27

0 Пользователей и 1 гость просматривают эту тему.

alpopo

Есть код, который работает в 1с81. При переносе процедуры в 1с82 толстый клиент выдаются ошибки:
{Документ.СборкаКомпьютера.Команда.ПечатьДокумента.МодульКоманды(20,37)}: Переменная не определена (ДокументОбъект)
   Запрос.УстановитьПараметр("Ссылка",<<?>>ДокументОбъект.Ссылка); (Проверка: Сервер)
{Документ.СборкаКомпьютера.Команда.ПечатьДокумента.МодульКоманды(26,42)}: Переменная не определена (ДокументОбъект)
   ВнешниеНаборыДанных.Вставить("СоставСБ",<<?>>ДокументОбъект.ПереченьНоменклатуры); (Проверка: Сервер)
***Как исправить синтаксис для 1с82?
Где описаны отличия в синтаксических конструкциях?

progmikon

А где у вас находится этот код? Что такое ДокументОбъект?
Как нам догадываться, то?

alpopo

Это запрос с параметром из 1с81 переношу в 1с82.

|ИЗ
                  |   Документ.СборкаКомпьютера КАК т1
                  |ГДЕ
                  |   т1.Ссылка = &Ссылка";
//где ДокументОбъект.Ссылка есть ссылка на документ СборкаКомпьютера

progmikon

Программа не понимает, да и я тоже, что в вашем контексте ДокументОбъект.Ссылка

alpopo

Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
               | т1.Дата,
               | т1.Номер,
               | т1.Мастер,
               | т1.Продукция КАК СистемныйБлок,
               | т1.Склад
               |ИЗ
               | Документ.СборкаКомпьютера КАК т1
               |ГДЕ
               | т1.Ссылка = &Ссылка";
Запрос.УстановитьПараметр("Ссылка",ДокументОбъект.Ссылка);
// В обычной форме этот запрос выполняется (1с81), а в управляемой (1с82) нет, выдает вешеозначенные ошибки
//
Результат = Запрос.Выполнить();


alpopo

   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |   т1.Дата,
                  |   т1.Номер,
                  |   т1.Мастер,
                  |   т1.Продукция КАК СистемныйБлок,
                  |   т1.Склад
                  |ИЗ
                  |   Документ.СборкаКомпьютера КАК т1
                  |ГДЕ
                  |   т1.Ссылка = &Ссылка";
   Запрос.УстановитьПараметр("Ссылка",ДокументОбъект.Ссылка);
   //
   Результат = Запрос.Выполнить();
***
В обычной форме этот запрос выполняется (1с81), а в управляемой (1с82) нет, выдает вешеозначенные ошибки

progmikon

alpopo

Что у вас такое ДокументОбъект?

alpopo

Есть учебная конфигурация из книжки по 1с81. Там есть документ СборкаКомпьютера. В Запросе из документа выбираются реквизиты.
В 1с81 (как я понимаю) ДокументОбъект.Ссылка - это ссылка на текущий документ (один), который к примеру открыт в форме. В обычной форме (1с31) этот запрос выполняется. Для 1с81 понятно, что означает ДокументОбъект и ДокументОбъект.Ссылка. В 1с82 этот синтаксис не подходит, синтаксический контроль выдает ошибки, которые приведены выше и запрос не выполняется.
Кстати как редактировать неудачные сообщения?

Slin

progmikon
По всей видимости, ДокументОбъект - это объект конкретного документа типа ДокументОбъект.СборкаКомпьютера. Получен при помощи функции ПолучитьОбъект() или иными способами.
skype: slin-dev

alpopo

Благодарю за участие! Вопрос по синтаксису снимаю.
Дело не в синтаксисе. Переводил обычную форму документа(1с81) в управляемую(1с82).
Сделал в конструкторе управляемую форму и встала задача перенести из обычной в управляемую команду Печать.
Тут есть два варианта: 1)Добавить команду в самой управляемой форме, 2)создать команду на закладке Команды Документа и включить ее в командный интерфейс управляемой формы через ветку Общие - Команды конфигурации.
Пошел по второму пути. Команда в управляемой форме не выполнилась, стал проверять ее (синтаксисКонтроль) - обнаружил указанные ошибки.
Кроме того что у реквизитов управляемой формы свой синтаксис, внешняя по отношению к форме команда не видит контекста формы
и соответственно получается (в синтаксисКонтроле), что переменная не определена.
Сама проблема переноса команды из обычной формы в управляемую пока не решена, но дело не в синтаксисе. Поэтому вопрос по синтаксису снимается, а по переносу команды остается.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск