Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
15 Июн 2021, 15:33
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
МультиВход
 
collapse

Автор Тема: Процедура или функция с указанным именем не определена (Записать)  (Прочитано 14137 раз)

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

Оффлайн oo oo

  • *
  • Регистрация: 2017-02-02
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
{Документ.НарядЗаказ.Форма.ФормаДокумента.Форма(387,2)}: Процедура или функция с указанным именем не определена (Записать)	<<?>>Записать(); (Проверка: Толстый клиент (обычное приложение)){Документ.НарядЗаказ.Форма.ФормаДокумента.Форма(387,2)}: Процедура или функция с указанным именем не определена (Записать)	<<?>>Записать(); (Проверка: Тонкий клиент)
Ругается на все вызовы Записать(). Вот пример такой процедуры (Ранее она прекрасно работала):
&НаКлиенте
Процедура КнТех(Команда)
Записать(); //что здесь не так?
ПередатьСсылкуНаДокумент();
Отбор = Новый Структура("Владелец", Объект.НаименованиеЭтикетки);
ПараметрыФормы = Новый Структура("Отбор", Отбор);
Форма = ПолучитьФорму("Справочник.ТехХарактер.ФормаВыбора", ПараметрыФормы);
Объект.ТехХарактер = Форма.ОткрытьМодально();
КонецПроцедуры

Вот такие ошибки возникают при проверке модуля формы документа. Ругается на вызов стандартной процедуры Записать(). Понятия не имею, почему это случилось. Появилось это после того как я написал несколько процедур, добавил дин. список и таб. часть. Процедуры, после написания которых конфигуратор считает, что Записать() не определена:

Функция ПроверитьТипМатериала()

Если Объект.НаименованиеЭтикетки.ТипЦены.ПометкаУдаления Тогда
Сообщить("В - " + СокрЛП(Объект.НаименованиеЭтикетки.Наименование) + ". Указан помеченный на удаление ""Тип материала"", выберите новый тип!");
Объект.НаименованиеЭтикетки = Неопределено;
Возврат Ложь;
Иначе
Возврат Истина;
КонецЕсли;

КонецФункции

&НаКлиенте
Процедура ПриВыбореВтулокПроизв()
Если Объект.ВнутрДиаметрВтулки.Пустая() Тогда
Объект.КоличествоВтулок = 0;
Иначе
КВНТ = ВзятьЧастное(Объект.Тираж, (Объект.КолЭтик * Объект.КолРядовВГотРол));
Если (КВНТ - Цел(КВНТ)) > 0 Тогда
Объект.КоличествоВтулок = Цел(КВНТ) + 1;
Иначе
Объект.КоличествоВтулок = ВзятьЧастное(Объект.Тираж, (Объект.КолЭтик * Объект.КолРядовВГотРол));
КонецЕсли;
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура УказатьДокумент(Пар)

Если Пар = 1 Тогда

Если Объект.Простой Тогда
Элементы.Простой.Доступность = Истина;
Элементы.Общий.Доступность = Ложь;
Сообщить("ВЫПИСАН ПРОСТОЙ НАРЯД НА ОДНУ ЭТИКЕТКУ.");
Иначе
Элементы.Общий.Доступность = Истина;
КонецЕсли;

ИначеЕсли Пар = 2 Тогда

Если Объект.Общий Тогда
Элементы.Общий.Доступность = Истина;
Элементы.Простой.Доступность = Ложь;
Сообщить("ВЫПИСАН ОБЩИЙ НАРЯД НА ЭТИКЕТКИ.");
Иначе
Элементы.Простой.Доступность = Истина;
КонецЕсли;

КонецЕсли;

КонецПроцедуры

&НаСервере
Функция глВернутьЭлемент(НЭ, ДокСсылка)

СтрЭлем = "";
Нашло = 0;       

СпрМС = Справочники.МакетыИСогласование;

ТЗ.Колонки.Добавить("Код");
ТЗ.Колонки.Добавить("ДатД");
ТЗ.Колонки.Добавить("Элемент");
ТЗ.Колонки.Добавить("Наряд");
ТЗ.Колонки.Добавить("Заявка");

Отбор = Новый Структура("Документ", ДокСсылка);
Выборка = СпрМС.Выбрать(,НЭ,Отбор, "Код Возр");

Нашло = 0;

Пока Выборка.Следующий() Цикл

Если Выборка.ПометкаУдаления Тогда
Продолжить;
КонецЕсли;

НоваяСтрока = ТЗ.Добавить();
НоваяСтрока.Код = Выборка.Код;
НоваяСтрока.ДатД = Выборка.Документ.Дата;
НоваяСтрока.Элемент = Выборка.Ссылка;
НоваяСтрока.Наряд = Выборка.Документ.Ссылка;
НоваяСтрока.Заявка = Выборка.Заявка; 

КонецЦикла;

Если ТЗ.Количество() > 0 Тогда

ТЗ.Сортировать("Код Убыв,ДатД Убыв");

Для каждого стр из ТЗ Цикл

Если стр.Элемент.ВидОперации = 2 Тогда
СтрЭлем = стр.Элемент.Ссылка;
Нашло = 1 ;
Прервать;
Иначе
Если СтрЭлем = "" Тогда
СтрЭлем = стр.Элемент.Ссылка;
Нашло = 0;
КонецЕсли;

Если стр.Наряд = ДокСсылка Тогда
СтрЭлем = стр.Элемент.Ссылка;
Нашло = 2;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;

Если Нашло = 0 Тогда

Попытка
мис = СпрМС.СоздатьЭлемент();      
мис.ДатаДок = ДокСсылка.Дата;
мис.НомерДок = ДокСсылка.Номер;
мис.ВидДок = ДокСсылка.Метаданные().Имя;

мис.Наименование = СокрЛП(СтрЭлем.Наименование);
мис.ДатаИзгПол = СтрЭлем.ДатаИзгПол;
мис.Макет = СтрЭлем.Макет;
мис.Согласование = СтрЭлем.Согласование;
мис.ФлОбщий = СтрЭлем.ФлОбщий;
мис.ВидОперации = СтрЭлем.ВидОперации;
мис.ФлЗаявка = Ложь;

мис.НовПол = Ложь;

мис.Записать();

СтрЭлем = мис.Ссылка;
Исключение
Возврат Неопределено;
КонецПопытки;

ИначеЕсли Нашло = 1 Тогда

мис = ТЗ.Элемент.ПолучитьОбъект(); мис = Справочники.МакетыИСогласование.ПустаяСсылка();
мис.ДатаДок = ДокСсылка.Дата;
мис.НомерДок = ДокСсылка.Номер;
мис.ВидДок = ДокСсылка.Метаданные().Имя;
мис.ВидОперации = 1;
мис.Записать();

СтрЭлем = мис.Ссылка;
КонецЕсли;
КонецЕсли;

Список = Новый СписокЗначений();

Список.Добавить(СтрЭлем, "СтрЭлем");
Список.Добавить(Нашло, "Нашло");

Возврат Список;

КонецФункции

&НаСервере
Процедура ЗаполнитьДанныеНаряда()  //выгрузка дин. списка в таблицу значений

Запрос = Новый Запрос(ТЗНаряд.ТекстЗапроса);

Результат = Запрос.Выполнить();

ТЗДанныеНаряда.Загрузить(Результат.Выгрузить());

КонецПроцедуры

&НаСервере
Процедура ОтобразитьКартинку(Рекв, ОбъектК)
Попытка
Если ОбъектК.Пустая() Тогда Возврат; КонецЕсли;
ОбъектСпрФайлы = ОбъектК.ПолучитьОбъект();

ОбработаннаяКартинка = Новый Картинка(ОбъектСпрФайлы.Путь);
ХранилищеКартинки = Новый ХранилищеЗначения(ОбработаннаяКартинка);

ОбъектСпрФайлы.Файл = ХранилищеКартинки;
ОбъектСпрФайлы.Записать();

Рекв = ПолучитьНавигационнуюСсылку(ОбъектК, "Файл");
//Элементы.Рекв.РазмерКартинки = РазмерКартинки.АвтоРазмер;
Исключение
КонецПопытки;
КонецПроцедуры


&НаКлиенте
Процедура ФлагПроверкиНарядов()

ЗаполнитьДанныеНаряда();

Если ТЗДанныеНаряда.Количество() > 0 Тогда

//Элементы.ТЗНаряд.ТекущиеДанные.

Попытка
ТекстОНаряда = СокрЛП(Элементы.ТЗНаряд.ТекущиеДанные.Наименование);
Если НЕ(Элементы.ТЗНаряд.ТекущиеДанные.Картинка.Пустая()) Тогда
ОтобразитьКартинку(Макет, Элементы.ТЗНаряд.ТекущиеДанные.Картинка);
Иначе

КонецЕсли;

Исключение
КонецПопытки;
КонецЕсли;

КонецПроцедуры

&НаКлиенте
Процедура ПоказатьТаблицу(Пар)

Если Объект.Тираж > 0 Тогда
УказатьДокумент(Пар);

Если Объект.Общий Тогда
Элементы.ВидимостьТаблицы.ТекущаяСтраница = Элементы.ПоказатьТаблицу;
ФлагПроверкиНарядов();

КонецЕсли;
КонецЕсли;
КонецПроцедуры

&НаКлиенте
Процедура ЗаказПриИзменении(Элемент)
Если Объект.Ссылка.Пустая() Тогда
Если Вопрос("Сначала необходимо записать документ. Записать?", РежимДиалогаВопрос.ДаНет) = КодВозвратаДиалога.Да Тогда
Записать();
Иначе
Сообщить("Документ не записан");
Возврат;
КонецЕсли;
КонецЕсли;

Если ПроверитьТипМатериала() И Объект.Тираж > 0 Тогда
Если НЕ(Объект.НаименованиеЭтикетки.Пустая()) Тогда
ЗаполнитьТехХарактеристики();

КонецЕсли;
КонецЕсли;

Если УчетШва() Тогда
Элементы.ВидШва.Доступность = Истина;
Иначе Элементы.ВидШва.Доступность = Ложь;
КонецЕсли;

ПриВыбореВтулокПроизв();
//РасчетМПВтулок();   Позже

Упаковка();

Если (Объект.Цвет1 + Объект.Цвет2) > 0 Тогда

СтрЭлем = "";

Спис = глВернутьЭлемент(Объект.НаименованиеЭтикетки, Объект.Ссылка);

СтрЭлем = Спис.СтрЭлем;
Нашло = Спис.Нашло;

Объект.Простой = 0;
Объект.Общий = 0;

Если НЕ(СокрЛП(СтрЭлем) = "") Тогда

Если СтрЭлем.ФлОбщий Тогда

Объект.Общий = 1;

Элементы.Общий.Доступность = Истина;
Элементы.Простой.Доступность = Ложь;

ПоказатьТаблицу(2);

Объект.НовыйПротокол = 0;
Объект.СтарыйПротокол = 0;

Иначе

КонецЕсли;

КонецЕсли;


// КонецЕсли
//
//Иначе
//
КонецЕсли;

КонецПроцедуры

&НаСервере
Функция УчетШва()
Возврат ?(Объект.ТипМатериала.УчетШва, Истина, Ложь);
КонецФункции

&НаСервере
Функция Упаковка()
Если Объект.Контрагент.МатериалЗаказчика = Ложь Тогда
Если Объект.НаименованиеЭтикетки.Пленки Тогда
Объект.ФлУпаковка = Истина;
Иначе
Объект.ФлУпаковка = Ложь;
КонецЕсли;
КонецЕсли;
КонецФункции



Собсна, почему это происходит и как от этого спастись?


Оффлайн Kironten

  • *****
  • Регистрация: 2013-08-12
  • Сообщений: 906
  • РЕПУТАЦИЯ: 187
  • КПД: 21%
  • Профессия: Ученик 1С
Записать можно только объект, а объект на клиенте недоступен. Отправляйтесь с записью на сервер.

Оффлайн oo oo

  • *
  • Регистрация: 2017-02-02
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
Записать можно только объект, а объект на клиенте недоступен. Отправляйтесь с записью на сервер.

Спасибо за ответ, но это абсолютно ничего не меняет. Только что сделал так:

&НаСервере
Процедура ЗаписатьДокумент()
          Записать(); //теперь ошибка на этой строке
КонецПроцедуры

&НаКлиенте
Процедура КнТех(Команда)
ЗаписатьДокумент();
ПередатьСсылкуНаДокумент();
Отбор = Новый Структура("Владелец", Объект.НаименованиеЭтикетки);
ПараметрыФормы = Новый Структура("Отбор", Отбор);
Форма = ПолучитьФорму("Справочник.ТехХарактер.ФормаВыбора", ПараметрыФормы);
Объект.ТехХарактер = Форма.ОткрытьМодально();
КонецПроцедуры

Результат:

{Документ.НарядЗаказ.Форма.ФормаДокумента.Форма(677,11)}: Процедура или функция с указанным именем не определена (Записать)
          <<?>>Записать(); (Проверка: Сервер)
{Документ.НарядЗаказ.Форма.ФормаДокумента.Форма(677,11)}: Процедура или функция с указанным именем не определена (Записать)
          <<?>>Записать(); (Проверка: Толстый клиент (обычное приложение))

Оффлайн Kironten

  • *****
  • Регистрация: 2013-08-12
  • Сообщений: 906
  • РЕПУТАЦИЯ: 187
  • КПД: 21%
  • Профессия: Ученик 1С
Вы объект не получили.
Есть подозрение, что вы находитесь в модуле формы. Соответственно объектом является форма. У формы НЕТ метода записать.

Оффлайн oo oo

  • *
  • Регистрация: 2017-02-02
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
Вы объект не получили.
Есть подозрение, что вы находитесь в модуле формы. Соответственно объектом является форма. У формы НЕТ метода записать.

&НаСервере
Процедура ЗаписатьДокумент()
Объект.Записать();
КонецПроцедуры

Вот так? Результат:

{Документ.НарядЗаказ.Форма.ФормаДокумента.Форма(677)}: Метод объекта не обнаружен (Записать)
Объект.Записать();

Оффлайн Kironten

  • *****
  • Регистрация: 2013-08-12
  • Сообщений: 906
  • РЕПУТАЦИЯ: 187
  • КПД: 21%
  • Профессия: Ученик 1С
Нет.
Поставьте точку останова и посмотрите, какой тип вы имеете в "объект"-е на сервере.
Я так думаю у вас там просто ДанныеФормы, а никак не ДокументОбъект.

Оффлайн oo oo

  • *
  • Регистрация: 2017-02-02
  • Сообщений: 4
  • РЕПУТАЦИЯ: 0
Нет.
Поставьте точку останова и посмотрите, какой тип вы имеете в "объект"-е на сервере.
Я так думаю у вас там просто ДанныеФормы, а никак не ДокументОбъект.

Да, действительно, Объект - это ДанныеФормы. Как мне в таком случае обратиться к ДокументОбъекту? Подскажите, пожалуйста.
Добавлено: 02 Фев 2017, 13:17

Нет.
Поставьте точку останова и посмотрите, какой тип вы имеете в "объект"-е на сервере.
Я так думаю у вас там просто ДанныеФормы, а никак не ДокументОбъект.

Я еще кое-что заметил. В стандартных командах нету команд: "Записать", "Сохранить". И с командной панели эти кнопки пропали.


Добавлено: 02 Фев 2017, 13:53

Все, разобрался.В реквизитах формы документа в свойствах реквизита "Объект" не стоял флажок "Основной реквизит". Он каким-то образом сам снялся. Поставил. И команды появились и метод Записать() работает (кстати, только с клиента, на сервере он просит какой-то параметр).

Думаю, что кому-то будет полезно.

Последний раз редактировалось: oo oo; 02 Фев 2017, 13:53. Причина: Объединение сообщений


 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Последние вакансии

* Том 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
69 Сообщений
LexaK
67 Сообщений
antoneus antoneus
32 Сообщений
Ивашка
27 Сообщений
neek666
25 Сообщений
KATERINA 861
19 Сообщений
SSC
15 Сообщений
alexandr_ll
13 Сообщений
Алексей_1985_06
12 Сообщений
MiThO
8 Сообщений

* Кто онлайн

  • Точка Гостей: 695
  • Точка Скрытых: 1
  • Точка Пользователей: 13
  • Точка Сейчас на форуме:

* Облако тэгов

* Инструменты

* Дополнительно

Поиск