Igoor46
19.10.2022, 14:44
Доброго времени суток.
Занялся изучением программирования в 1с. Т.к. в конторе до сих пор используют 7.7 УСН то соответственно с ней и маюсь. Опыта пока мало, потому опытным программистам мой вопрос покажется примитивным, но уж не обессудьте. Читал и книжки и документацию и по форумам искал, так и не смог разобраться, видимо мозгов не хватает :)
Собственно, в чем вопрос. Делаю обработкой простой отчет. В одной из ячеек выражение типа "Справочник.Номенклатура". Дабы по двойному клику открывалась карточка счета, в модуле прописываю:
Перем Таб, Расшифровка;
Процедура Сформировать()
Таб.Очистить();
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0,0,3,0);
Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("41");
Счет = Сч.ТекущийСчет();
Расшифровка.Установить("Счет", Счет);
Расшифровка.Установить("ОтборСубконто1", 2);
Расшифровка.Установить("ВидСубконто1", ВидыСубконто.Номенклатура) ;
Расшифровка.Установить("Субконто1", ВыбНоменклатура);
Расшифровка.Установить("Дата1", НачГода(ТекущаяДата()));
Расшифровка.Установить("Дата2", ТекущаяДата());
Расшифровка.Установить("Отчет", "КарточкаСчета");
Таб.ВывестиСекцию("Строка");
Таб.ТолькоПросмотр(1);
Таб.Показать("Номенклатура","");
КонецПроцедуры
Процедура ПриОткрытии()
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Расшифровка = СоздатьОбъект("СписокЗначений");
КонецПроцедуры
И все прекрасно работает, карточка счета открывается.
Но. Понадобилась на отчете кнопка "Обновить", так чтобы заново запускалась процедура "Сформировать". Дописываю модуль:
Процедура ОбработкаЯчейкиТаблицы(Зн� �чение, Флаг, Таб);
Если НЕ(Значение = "Обновить") Тогда
Флаг = 1;
СтатусВозврата(0);
Возврат;
Иначе
Флаг = 0;
Сформировать();
КонецЕсли;
КонецПроцедуры
Обновление отчета срабатывает как надо, НО перестала открываться карточка счета. Понятно, что если в модуле обработки есть процедура "ОбработкаЯчейкиТаблицы", то выполняется именно она а не аналогичная процедура из глобального модуля. И при этом при двойном клике на ячейке с номенклатурой (в которой прописана расшифровка типа "Список Значений" с параметрами нужной карточки счета) появляется предупреждение с текстом "СписокЗначений".
Игрался и с Флагом и со СтатусомВозврата (кто-то посоветовал), но не помогло.
Как сделать так, чтобы при клике на любую ячейку кроме "Обновить" срабатывала именно процедура глобального модуля. Или может как-то по другому надо решать эту задачу. Не могу сообразить.
Подскажите плизз.
Занялся изучением программирования в 1с. Т.к. в конторе до сих пор используют 7.7 УСН то соответственно с ней и маюсь. Опыта пока мало, потому опытным программистам мой вопрос покажется примитивным, но уж не обессудьте. Читал и книжки и документацию и по форумам искал, так и не смог разобраться, видимо мозгов не хватает :)
Собственно, в чем вопрос. Делаю обработкой простой отчет. В одной из ячеек выражение типа "Справочник.Номенклатура". Дабы по двойному клику открывалась карточка счета, в модуле прописываю:
Перем Таб, Расшифровка;
Процедура Сформировать()
Таб.Очистить();
Таб.ВывестиСекцию("Шапка");
Таб.Опции(0,0,3,0);
Сч = СоздатьОбъект("Счет.Основной");
Сч.НайтиПоКоду("41");
Счет = Сч.ТекущийСчет();
Расшифровка.Установить("Счет", Счет);
Расшифровка.Установить("ОтборСубконто1", 2);
Расшифровка.Установить("ВидСубконто1", ВидыСубконто.Номенклатура) ;
Расшифровка.Установить("Субконто1", ВыбНоменклатура);
Расшифровка.Установить("Дата1", НачГода(ТекущаяДата()));
Расшифровка.Установить("Дата2", ТекущаяДата());
Расшифровка.Установить("Отчет", "КарточкаСчета");
Таб.ВывестиСекцию("Строка");
Таб.ТолькоПросмотр(1);
Таб.Показать("Номенклатура","");
КонецПроцедуры
Процедура ПриОткрытии()
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Таблица");
Расшифровка = СоздатьОбъект("СписокЗначений");
КонецПроцедуры
И все прекрасно работает, карточка счета открывается.
Но. Понадобилась на отчете кнопка "Обновить", так чтобы заново запускалась процедура "Сформировать". Дописываю модуль:
Процедура ОбработкаЯчейкиТаблицы(Зн� �чение, Флаг, Таб);
Если НЕ(Значение = "Обновить") Тогда
Флаг = 1;
СтатусВозврата(0);
Возврат;
Иначе
Флаг = 0;
Сформировать();
КонецЕсли;
КонецПроцедуры
Обновление отчета срабатывает как надо, НО перестала открываться карточка счета. Понятно, что если в модуле обработки есть процедура "ОбработкаЯчейкиТаблицы", то выполняется именно она а не аналогичная процедура из глобального модуля. И при этом при двойном клике на ячейке с номенклатурой (в которой прописана расшифровка типа "Список Значений" с параметрами нужной карточки счета) появляется предупреждение с текстом "СписокЗначений".
Игрался и с Флагом и со СтатусомВозврата (кто-то посоветовал), но не помогло.
Как сделать так, чтобы при клике на любую ячейку кроме "Обновить" срабатывала именно процедура глобального модуля. Или может как-то по другому надо решать эту задачу. Не могу сообразить.
Подскажите плизз.