Здравствуйте! Непонятная проблема замучила. У меня есть процедура поиска по серийному номеру с именем ПоискПСН().
В поле акта приема я ввожу серийный номер, и, если нажать на кнопку, на которую я повесил эту процедуру, то осуществляется перебор всех документов, и данные документов с этим серийным номером заносятся в таблицу значений ТЗ. Дата приема, кто делал, номер телефона клиента и т.п. Затем создается печатная форма таблицы Таб и выводится все это в приличном виде на экран. Все меня устраивало. Но сегодня я решил, что удобнее будет, если эту процедуру повесить не на кнопку, а прямо на поле ввода серийного номера. Чтобы после ввода серийника без кнопки запускалась процедура поиска документов с данным серийником и все выводилось. И тут возникла проблема.
Код процедуры я не менял, а всего лишь, ВСЕГО прописал в поле Дополнительно название процедуры ПоискПСН(), которая на кнопке нормально работает. Синтакс, естественно, все ОК. Но при проверке после введения серийного номера появляется сообщение, что имя файла ПоискПСН не найдено:
Таб.Исходная таблица ("ПоискПСН")
Документ АктПриема модуль такой-то Неверное имя ПоискПСН
Вот так вот. Хотя таблица печатной формы с именем ПоискПСН имеется и с кнопки все отлично работает. Что за хрень?
Операционка Виндовс 10.
Спасибо
Хрень в том, что "таблица печатной формы" наверно интерактивная и имеет поле-кнопку с формулой #ПоискПСН()
Обработка генерирует этот табличный документ, и если закрыть форму обработки, теряется связь (контект) этой рпоцедуры с табличного поля и формой обработки. Вот и ошибка.
Как лечить:
выводить табличный документ на форму обработки.
Vladal @ Сегодня, 19:49
,
Поле-кнопку не имеет. Кнопка находится на форме. Я не понимаю, почему ошибка выскакивает, если я не меняю код программы, а просто меняю кнопку, которая находится на форме на поле ввода, которое тоже находится на форме.
У меня есть еще одна кнопка с полем ввода. Там такая же процедура, только не с серийником, а с номером телефона. Так вот, если процедуру повесить на поле ввода номера телефона, то выскакивает эта же ошибка. То есть, не находит таблицу печатной формы ПоискПТФ. А с кнопки все работает. Это что-то системное. Может, нельзя вообще с поля ввода запускать процедуры с выводом таблиц печатной формы? Где собака порылась?
ZUBR @ Вчера, 21:26
,
Пришел к выводу, что ошибки нет, просто, когда запускается процедура не с кнопки, а с поля ввода, программа ищет таблицу в виде файла. И не находит. Можно ли обойти эту проблему?
Перем МожноЗакрыть;
Процедура ПриОткрытии()
МожноЗакрыть=1;
КонецПроцедуры
Процедура ПечатьИзПоляВвода() // цю процедуру вішаємо на поле вводу
МожноЗакрыть = 0;
Форма.Закрыть(0);
КонецПроцедуры
Процедура ПриЗакрытии()
Если МожноЗакрыть = 0 Тогда
МожноЗакрыть = 1;
Сформувати(); // ця процедура, яку потрібно виконатити
СтатусВозврата(0); // відмінити закриття форми
Возврат; // протрібно якщо нижче в цій процедурі є ще якийсь код, і не потрібно щоб він виконувався
КонецЕсли;
КонецПроцедуры
volodya1122 @ Сегодня, 13:04
,
Дуже дякую. проте, такий метод мені не подобається... Якщо інших рішень немає, доведеться відмовитись від виводу друкованої форми.
ZUBR @ Вчера, 17:31
,
і чим він не подобається. Це звичайне рішення, в багатьох місцях його використовують. Для користувача взагалі ніяких відмінностей небуде.
інший вихід- таблицю значень помістити прямо на форму
volodya1122 @ Вчера, 9:28
,
Дякую ще раз. Я вже думав таблицю помістити на форму. Але ще ні разу не використовував цього. Треба освоїти.
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua