Sulik
|
|
« : 02-08-2010 07:54 » |
|
Необходимо получить Расшифровку при даблклике на ячейку(ячейка содержит краткое наименование контрагента). Расшифровка здесь - это печатная форма документа АктСверкиВзаиморасчетов для выбранного контрагента за определенный (в отчете) период. В обработчике событий ОбработкаРасшифровки у ПолеТабличногоДокумента пишу следующий код Процедура РасшифровкаАктВзаиморасчетов(Элемент, Расшифровка, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; форма = Документы.АктСверкиВзаиморасчетов.ПолучитьФорму("ФормаДокумента");
Форма.ЭлементыФормы.Контрагент = Расшифровка; Форма.ЭлементыФормы.ДатаНачала = ДатаНач; форма.ОткрытьМодально(); КонецПроцедуры
Выдает ошибку : Поле объекта недоступно для записи (ДатаНачала)1. Как сделать так чтобы при нажатии на ячейку с контрагентом выбирался тот контрагент, который в ячейке (Расшифровка = ?). 2. В правильном ли я направлении?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #1 : 02-08-2010 08:51 » |
|
Скорее всего или Форма.Контрагент = Расшифровка; Форма.ДатаНачала = ДатаНач; или Форма.ЭлементыФормы.Контрагент.Значение = Расшифровка; Форма.ЭлементыФормы.ДатаНачала.Значение = ДатаНач;
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #2 : 02-08-2010 09:36 » |
|
Форма.ЭлементыФормы.Контрагент.Значение = Расшифровка; Форма.ЭлементыФормы.ДатаНачала.Значение = ДатаНач; Это помогло.
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #3 : 02-08-2010 10:37 » |
|
А как можно запустить процедуру при нажатии на кнопку "Заполнить по данным управленческого учета" ?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #4 : 02-08-2010 19:29 » |
|
Sulik, не понял вопроса - а в чем проблема?
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #5 : 03-08-2010 05:30 » |
|
Как нажать на кнопку программно, чтобы заполнить по данным управленческого учета, затем записать, затем открыть печатную форму "Акт сверки" ?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #6 : 03-08-2010 06:11 » |
|
Как нажать на кнопку программно Посмотреть какая процедура вызывается по нажатию на кнопку и вызвать ее, передав параметром ту же кнопку: Форма.<КнопкаВыполнить>Нажатие(Форма.ЭлементыФормы.<КнопкаВыполнить>) Но при этом <КнопкаВыполнить>Нажатие() должна быть объявлена как Экспорт
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #7 : 03-08-2010 15:53 » |
|
Как можно обратиться к кнопке и ее процедуре ? Пробую так: Форма.Элементыформы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.ЗаполнитьПоДаннымУправленческогоУчета. КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымУправленческогоУчета.Нажать(Форма.Элементыформы. КоманднаяПанельПоДаннымОрганизации.Кнопки.ЗаполнитьПоДаннымУправленческогоУчета) ругается: {Форма.Отчета.Форма(186)}: Поле объекта не обнаружено (ЗаполнитьПоДаннымУправленческогоУчета) Форма1.Элементыформы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.ЗаполнитьПоДаннымУправленческогоУчета. КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымУправленческогоУчета.Нажать(Форма1.Элементыформы. КоманднаяПанельПоДаннымОрганизации.Кнопки.ЗаполнитьПоДаннымУправленческогоУчета);
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #8 : 03-08-2010 20:34 » |
|
Пока ругается на синтаксис. Похоже нужно так: Форма.Элементыформы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.ЗаполнитьПоДаннымУправленческогоУчета
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #9 : 03-08-2010 20:34 » |
|
Но это приведет только к следующей ошибке...
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #10 : 04-08-2010 05:04 » |
|
Не получается.
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #11 : 04-08-2010 08:13 » |
|
ИМХО должно быть что-то вроде: Форма1.КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымУправленческогоУчета( Форма1.ЭлементыФормы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоДаннымУправленческогоУчета); Но при этом КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымУправленческогоУчета() должна быть объявлена как Экспорт
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #12 : 04-08-2010 13:30 » |
|
Спасибо. Помогло! Столкнулся с проблемой: "Не выбрана валюта" . Эта строка не помогает: Форма1.ЭлементыФормы.ВалютаДокумента.Значение = "руб." ;С этой строкой ошибок с валютой нет : Форма1.ЭлементыФормы.ВалютаДокумента.Значение = Справочники.Валюты.НайтиПоКоду("643");Заполнил список счетов, потому что выдавал ошибку: Неверно задан список счетов по которым производится сверка. форма1 = Документы.АктСверкиВзаиморасчетов.ПолучитьФорму("ФормаДокумента"); Форма1.ЭлементыФормы.ВалютаДокумента.Значение = Справочники.Валюты.НайтиПоКоду("643"); Форма1.ЭлементыФормы.Контрагент.Значение = Расшифровка; Форма1.ЭлементыФормы.ДатаНачала.Значение = ДатаНач; Форма1.ЭлементыФормы.ДатаОкончания.Значение = ДатаКон; Форма1.КоманднаяПанельСписокСчетовЗаполнитьПоУмолчанию( Форма1.ЭлементыФормы.КоманднаяПанельСписокСчетов.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоУмолчанию); Форма1.КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымБухгалтерскогоУчета(Форма1.ЭлементыФормы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоДаннымБухгалтерскогоУчета); форма1.ОткрытьМодально();
Окно открывается НО: Не заполняется список... Попробую проанализировать все, что происходит при открытии формы.
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #13 : 04-08-2010 14:20 » |
|
ИМХО у тебя неверный подход: ты создаешь форму и заполняешь через форму, вместо того чтобы создать объект, заполнить реквизиты а потом открыть форму: // Сначала документ Док = Документы.АктСверкиВзаиморасчетов.СоздатьДокумент(); Док.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("643"); // Вообще-то лучше через константу - смотри какая есть Док.Контрагент = Расшифровка; // Теперь форма Форма1 = Док.ПолучитьФорму("ФормаДокумента"); Форма1.КоманднаяПанельСписокСчетовЗаполнитьПоУмолчанию( Форма1.ЭлементыФормы.КоманднаяПанельСписокСчетов.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоУмолчанию); Форма1.КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымБухгалтерскогоУчета(Форма1.ЭлементыФормы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоДаннымБухгалтерскогоУчета); Форма1.ОткрытьМодально();
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #14 : 04-08-2010 14:30 » |
|
Док = Документы.АктСверкиВзаиморасчетов.СоздатьДокумент(); Док.Контрагент = Расшифровка; Док.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("643"); Док.ДатаНачала = ДатаНач; Док.ДатаОкончания = ДатаКон; форма1 = Док.ПолучитьФорму("ФормаДокумента"); Форма1.КоманднаяПанельСписокСчетовЗаполнитьПоУмолчанию( Форма1.ЭлементыФормы.КоманднаяПанельСписокСчетов.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоУмолчанию); Форма1.КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымБухгалтерскогоУчета( Форма1.ЭлементыФормы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоДаннымБухгалтерскогоУчета); форма1.ОткрытьМодально();
Без ошибок. Но Список табличной части не заполняется
|
|
« Последнее редактирование: 04-08-2010 14:46 от Sulik »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #15 : 04-08-2010 18:33 » |
|
Sulik, я пока просто переделал твой код более "правильно" (идеологически) - ничего дополнительного там быть не должно. Как заполняется список нужно смотреть в коде...
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #16 : 05-08-2010 06:04 » |
|
В справочнике Валюты у меня было несколько рублевых валют с таким кодом. Поэтому не выбирался основной документ и все остальное... Теперь список заполняется.
Столкнулся с новой проблемой: В открытой форме документа есть кнопка внизу Акт Сверки, а в конфигураторе на форме этой кнопки нет. Почему?
|
|
« Последнее редактирование: 05-08-2010 06:06 от Sulik »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #17 : 05-08-2010 12:54 » |
|
В 8.Х програмные возможности по управлению интерфейсом огромны: практически всегда можно всю форму нарисовать "с нуля", так что одной кнопке не стоит удивляться
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #18 : 06-08-2010 07:04 » |
|
Никак не могу найти имя кнопки Акт сверки . Посоветуйте что-нибудь, пожалуйста.
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #19 : 06-08-2010 07:15 » |
|
Скорее всего это название печатной формы, которая по умолчанию. На форме есть кнопка "Печать v" ?
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #20 : 06-08-2010 07:26 » |
|
СПАСИБО!!!
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #21 : 07-08-2010 09:59 » |
|
Как сделать так чтобы при нажатии на ячейку выбирался тот контрагент, который в ячейке. Я так понимаю, что при формировании отчета параметру расшифровки надо присвоить список контрагентов, выводимых в ячейки. Но при обработке расшифровки как получить из списка нужного мне контрагента(который в ячейке на которую я нажимаю)
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #22 : 07-08-2010 20:48 » |
|
Не понял - параметру расшифровка ты присваиваешь значение, которое ты получишь потом в обработке расшифровки. Если у тебя для каждой строки свой параметр - так и присваивай его для каждой строки в цикле: Для каждого Строка из Строки Цикл Область = Макет.ПолучитьОбласть("Строка"); Область.Параметры.Контрагент=Строка.Конрагент; Таб.Вывести(Область); КонецЦикла
|
|
|
Записан
|
|
|
|
Sulik
|
|
« Ответ #23 : 10-08-2010 04:35 » |
|
СПАСИБО!!!
|
|
|
Записан
|
|
|
|
|