Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Нестандартная расшифровка  (Прочитано 26727 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« : 02-08-2010 07:54 » 

Необходимо получить Расшифровку при даблклике на ячейку(ячейка содержит краткое наименование контрагента).
Расшифровка здесь - это печатная  форма документа АктСверкиВзаиморасчетов для выбранного контрагента за определенный (в отчете) период.

В обработчике событий ОбработкаРасшифровки у ПолеТабличногоДокумента пишу следующий код
Код:
Процедура РасшифровкаАктВзаиморасчетов(Элемент, Расшифровка, СтандартнаяОбработка)

СтандартнаяОбработка = Ложь;
форма = Документы.АктСверкиВзаиморасчетов.ПолучитьФорму("ФормаДокумента");

Форма.ЭлементыФормы.Контрагент = Расшифровка;
Форма.ЭлементыФормы.ДатаНачала = ДатаНач;
форма.ОткрытьМодально();
КонецПроцедуры

Выдает ошибку : Поле объекта недоступно для записи (ДатаНачала)

1. Как сделать так чтобы при нажатии на ячейку с контрагентом выбирался тот контрагент, который в ячейке
(Расшифровка = ?).

2. В правильном ли я направлении?

Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 02-08-2010 08:51 » 

Скорее всего или
Код:
Форма.Контрагент = Расшифровка;
Форма.ДатаНачала = ДатаНач;
или
Код:
Форма.ЭлементыФормы.Контрагент.Значение = Расшифровка;
Форма.ЭлементыФормы.ДатаНачала.Значение = ДатаНач;
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 02-08-2010 09:36 » 

Код:
Форма.ЭлементыФормы.Контрагент.Значение = Расшифровка;
Форма.ЭлементыФормы.ДатаНачала.Значение = ДатаНач;
Это помогло.
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #3 : 02-08-2010 10:37 » 

А как можно запустить процедуру при нажатии на кнопку "Заполнить по данным управленческого учета"  ?
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #4 : 02-08-2010 19:29 » 

Sulik, не понял вопроса - а в чем проблема?
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #5 : 03-08-2010 05:30 » 

Как нажать на кнопку программно, чтобы заполнить по данным управленческого учета, затем записать, затем открыть печатную форму "Акт сверки"  ?
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #6 : 03-08-2010 06:11 » 

Цитата
Как нажать на кнопку программно
Посмотреть какая процедура вызывается по нажатию на кнопку и вызвать ее, передав параметром ту же кнопку:
Код:
Форма.<КнопкаВыполнить>Нажатие(Форма.ЭлементыФормы.<КнопкаВыполнить>)
Но при этом <КнопкаВыполнить>Нажатие() должна быть объявлена как Экспорт
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #7 : 03-08-2010 15:53 » 

Как можно обратиться к кнопке и ее процедуре ?
Пробую так:
Код:
Форма.Элементыформы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.ЗаполнитьПоДаннымУправленческогоУчета.
КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымУправленческогоУчета.Нажать(Форма.Элементыформы.
КоманднаяПанельПоДаннымОрганизации.Кнопки.ЗаполнитьПоДаннымУправленческогоУчета)

ругается:

Код:
{Форма.Отчета.Форма(186)}: Поле объекта не обнаружено (ЗаполнитьПоДаннымУправленческогоУчета)
Форма1.Элементыформы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.ЗаполнитьПоДаннымУправленческогоУчета.
КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымУправленческогоУчета.Нажать(Форма1.Элементыформы.
КоманднаяПанельПоДаннымОрганизации.Кнопки.ЗаполнитьПоДаннымУправленческогоУчета);


   
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #8 : 03-08-2010 20:34 » 

Пока ругается на синтаксис. Похоже нужно так:
Форма.Элементыформы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.ЗаполнитьПоДаннымУправленческогоУчета
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #9 : 03-08-2010 20:34 » 

Но это приведет только к следующей ошибке...
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 04-08-2010 05:04 » 

Не получается.
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #11 : 04-08-2010 08:13 » 

ИМХО должно быть что-то вроде:
Код:
Форма1.КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымУправленческогоУчета(
  Форма1.ЭлементыФормы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоДаннымУправленческогоУчета);
Но при этом КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымУправленческогоУчета() должна быть объявлена как Экспорт
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #12 : 04-08-2010 13:30 » 

Спасибо. Помогло! Улыбаюсь

Столкнулся с проблемой: "Не выбрана валюта" .
Эта строка не помогает: Форма1.ЭлементыФормы.ВалютаДокумента.Значение = "руб." ;
С этой строкой ошибок с валютой нет : Форма1.ЭлементыФормы.ВалютаДокумента.Значение = Справочники.Валюты.НайтиПоКоду("643");
Заполнил список счетов, потому что выдавал ошибку: Неверно задан список счетов по которым производится сверка.
 

Код:

форма1 = Документы.АктСверкиВзаиморасчетов.ПолучитьФорму("ФормаДокумента");
Форма1.ЭлементыФормы.ВалютаДокумента.Значение = Справочники.Валюты.НайтиПоКоду("643");
Форма1.ЭлементыФормы.Контрагент.Значение = Расшифровка;
Форма1.ЭлементыФормы.ДатаНачала.Значение = ДатаНач;   
Форма1.ЭлементыФормы.ДатаОкончания.Значение = ДатаКон;
Форма1.КоманднаяПанельСписокСчетовЗаполнитьПоУмолчанию( Форма1.ЭлементыФормы.КоманднаяПанельСписокСчетов.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоУмолчанию);
        Форма1.КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымБухгалтерскогоУчета(Форма1.ЭлементыФормы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоДаннымБухгалтерскогоУчета);
форма1.ОткрытьМодально();


Окно открывается
НО: Не заполняется список...
Попробую проанализировать все, что происходит при открытии формы.

Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #13 : 04-08-2010 14:20 » 

ИМХО у тебя неверный подход: ты создаешь форму и заполняешь через форму, вместо того чтобы создать объект, заполнить реквизиты а потом открыть форму:
Код:
// Сначала документ
Док = Документы.АктСверкиВзаиморасчетов.СоздатьДокумент();
Док.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("643"); // Вообще-то лучше через константу - смотри какая есть
Док.Контрагент = Расшифровка;
// Теперь форма
Форма1 = Док.ПолучитьФорму("ФормаДокумента");
Форма1.КоманднаяПанельСписокСчетовЗаполнитьПоУмолчанию( Форма1.ЭлементыФормы.КоманднаяПанельСписокСчетов.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоУмолчанию);
Форма1.КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымБухгалтерскогоУчета(Форма1.ЭлементыФормы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоДаннымБухгалтерскогоУчета);
Форма1.ОткрытьМодально();
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #14 : 04-08-2010 14:30 » 

Код:
         Док = Документы.АктСверкиВзаиморасчетов.СоздатьДокумент();
Док.Контрагент = Расшифровка;
Док.ВалютаДокумента = Справочники.Валюты.НайтиПоКоду("643");
Док.ДатаНачала = ДатаНач;   
Док.ДатаОкончания = ДатаКон;
форма1 = Док.ПолучитьФорму("ФормаДокумента");
Форма1.КоманднаяПанельСписокСчетовЗаполнитьПоУмолчанию( Форма1.ЭлементыФормы.КоманднаяПанельСписокСчетов.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоУмолчанию);
Форма1.КоманднаяПанельПоДаннымОрганизацииЗаполнитьПоДаннымБухгалтерскогоУчета( Форма1.ЭлементыФормы.КоманднаяПанельПоДаннымОрганизации.Кнопки.ПодменюЗаполнить.Кнопки.ЗаполнитьПоДаннымБухгалтерскогоУчета);
форма1.ОткрытьМодально();



Без ошибок. Но Список табличной части не заполняется
« Последнее редактирование: 04-08-2010 14:46 от Sulik » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #15 : 04-08-2010 18:33 » 

Sulik, я пока просто переделал твой код более "правильно" (идеологически) - ничего дополнительного там быть не должно. Как заполняется список нужно смотреть в коде...
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #16 : 05-08-2010 06:04 » 

В справочнике Валюты у меня было несколько рублевых валют с таким кодом. Поэтому не выбирался основной документ и все остальное...
Теперь список заполняется.

Столкнулся с новой проблемой:
В открытой форме документа есть кнопка внизу Акт Сверки, а в конфигураторе на форме этой кнопки нет. Почему?

« Последнее редактирование: 05-08-2010 06:06 от Sulik » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #17 : 05-08-2010 12:54 » 

В 8.Х програмные возможности по управлению интерфейсом огромны: практически всегда можно всю форму нарисовать "с нуля", так что одной кнопке не стоит удивляться Улыбаюсь
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #18 : 06-08-2010 07:04 » 

Никак не могу найти имя кнопки Акт сверки Здесь была моя ладья.... Посоветуйте что-нибудь, пожалуйста.
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #19 : 06-08-2010 07:15 » 

Скорее всего это название печатной формы, которая по умолчанию. На форме есть кнопка "Печать v" ?
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #20 : 06-08-2010 07:26 » 

СПАСИБО!!!  Отлично
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #21 : 07-08-2010 09:59 » 

Цитата
Как сделать так чтобы при нажатии на ячейку выбирался тот контрагент, который в ячейке.

Я так понимаю, что при формировании отчета параметру расшифровки надо присвоить список контрагентов, выводимых в ячейки.

Но при обработке расшифровки как получить из списка нужного мне контрагента(который в ячейке на которую я нажимаю)
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #22 : 07-08-2010 20:48 » 

Не понял - параметру расшифровка ты присваиваешь значение, которое ты получишь потом в обработке расшифровки. Если у тебя для каждой строки свой параметр - так и присваивай его для каждой строки в цикле:
Код:
Для каждого Строка из Строки Цикл
   Область = Макет.ПолучитьОбласть("Строка");
   Область.Параметры.Контрагент=Строка.Конрагент;
   Таб.Вывести(Область);
КонецЦикла
Записан
Sulik
Помогающий

ru
Offline Offline
Пол: Мужской

« Ответ #23 : 10-08-2010 04:35 » 

СПАСИБО!!!  Улыбаюсь
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines