Имя: Пароль:
1C
1C 7.7
v7: Расшифровка()
,
0 alex_reglament
 
12.12.11
19:55
нужно реализовать следующее имеется отчет в печатной форме которого имеются колонки  на колонке контрагент когда щелкнешь два раза или нажмешь ввод  нужно что б сработала еще одна процедура с запросом БИ
так вот как реализовать и передать значение ячейки печатной формы отчета
1 alex_reglament
 
12.12.11
19:56
может дайте ссылку с примером ну или подскажите
я честно говоря читал СП но не чего не понял помогите пожалуйста
2 alex_reglament
 
12.12.11
19:57
делал так но у меня получился бесконечный цикл

Функция ОбработкаЯчейкитаблицы(Контрагент)
       Табл = СоздатьОбъект("Таблица");
       Табл.ВывестиСекцию("Шапка");
       Би = СоздатьОбъект("БухгалтерскиеИтоги");
       Би.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент);
       Би.ИспользоватьСубконто(ВидыСубконто.Накладная);
       Би.ВыполнитьЗапрос(,Дата_,"ДЦ",,,,"Операция");
Би.ВыбратьСубконто(1);
Пока Би.ПолучитьСубконто(1) = 1 Цикл
   Би.ВыбратьСубконто(2);
   Пока Би.ПолучитьСубконто(2) = 1 Цикл
       Если Би.СКД("С") - Би.СКК("С") <> 0 Тогда
       дОК = Би.Субконто(2);
       ДатаДока = Би.Субконто(2).ДатаДок;
       Сумма = Би.Субконто(2);
       Табл.ВывестиСекцию("Строка");
   КонецЕсли;
   КонецЦикла;
КонецЦикла;
Табл.Показать("Расшифровка");
КонецФункции


в свойствах ячейки печ форму написал Контрагент
3 alex_reglament
 
12.12.11
19:57
поможете?
4 Ёпрст
 
12.12.11
20:02
Ну дык в коде напиши перед выводом секции "Строка", чему равен твой Контрагент:

Контрагент = "Вася пупкин";// или Контрагент = БИ.ДогадайсяСам
5 Ёпрст
 
12.12.11
20:03
а ёпт, прочитал по диагонали.
6 Rie
 
12.12.11
20:04
(4) Зачем? Это же ОбработкаЯчейкиТаблицы
7 Rie
 
12.12.11
20:05
(0) Не видно там у тебя бесконечного цикла. С чего ты решил, что он у тебя есть?
8 alex_reglament
 
12.12.11
20:05
не ты меня не понял Контрагент должно быть равно Значению ячейки по которой стукнули
9 Ёпрст
 
12.12.11
20:06
10 alex_reglament
 
12.12.11
20:08
(6) я честно говоря не сильно понимаю что именно нужно использовать
ОбработкаЯчейкиТаблицы
или еще что
мне нужно чтобы после формирования отчета при  долбании пару раз левой ккнопкой мыши на ячейке контрагент срабатывала изи одна процедура и вываливалась ище одна печ форма но уже с другими данными по этому контрагенту
11 Ёпрст
 
12.12.11
20:14
(10) для начала, смотреть параметры метода ОбработкаЯчейкитаблицы, в плане флага стандартной обработки.
12 alex_reglament
 
12.12.11
20:15
да смотрел я не выходит
13 alex_reglament
 
12.12.11
20:18
объясните пожалуйста что мне нужно использовать
14 Ёпрст
 
12.12.11
20:18
Ну читай (9) - там всё написано.

А так всё тупо - что в поле Расшифровка положил при выводе секции, то и в ОбработкаЯчейкитаблицы получил при клике на ячейки (нужно только выставить ТолькоПросмотр(1) у таблички) в виде значения.
А дальше - делай что хочешь.
Чтоб отменить стандартное действие - заточить флаг ст.обработки  в ноль надобно.
15 alex_reglament
 
12.12.11
20:22
тоесть мне нужно
как я понял из урока(9) использовать  ОбработкаЯчейкиТаблицы()
затем указать ей что ФлагСтандОбраб = 0
так
затем в теле уже писать
Табл = СоздатьОбъект("Таблица");
Табл.ИсходнаяТаблица("Расшифровка");
       Табл.ВывестиСекцию("Шапка");
       Би = СоздатьОбъект("БухгалтерскиеИтоги");
       Би.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент);
       Би.ИспользоватьСубконто(ВидыСубконто.Накладная);
       Би.ВыполнитьЗапрос(,Дата_,"ДЦ",,,,"Операция");
Би.ВыбратьСубконто(1);
Пока Би.ПолучитьСубконто(1) = 1 Цикл
   Би.ВыбратьСубконто(2);
   Пока Би.ПолучитьСубконто(2) = 1 Цикл
       Если Би.СКД("С") - Би.СКК("С") <> 0 Тогда
       дОК = Би.Субконто(2);
       ДатаДока = Би.Субконто(2).ДатаДок;
       Сумма = Би.Субконто(2);
       Табл.ВывестиСекцию("Строка");
   КонецЕсли;
   КонецЦикла;
КонецЦикла;
Табл.Показать("Расшифровка");
16 alex_reglament
 
12.12.11
20:23
при том что  Табл.ИсходнаяТаблица("Расшифровка");
имеется и у меня при двойном щелчке по ячейке  первой таблице вылезет вторая так???
17 alex_reglament
 
12.12.11
20:24
тоесть так будет правильно ?


Перем Контрагент;
Процедура ПриОткрытии()
   Дата_ = РабочаяДата();
   Форма.КнопкаПоУмолчанию("Сформировать");
КонецПроцедуры  
   //*******************************************
Процедура Сформировать()
   спрБанка = СоздатьОбъект("Справочник.БанковскиеСчета");
   //*******************************************
   Таб = СоздатьОбъект("Таблица");
   Таб.ВывестиСекцию("Шапка");
   Ит_1 = СоздатьОбъект("БухгалтерскиеИтоги");
   Ит_1.ИспользоватьСубконто(ВидыСубконто.Контрагенты);
   Ит_1.ИспользоватьСубконто(ВидыСубконто.Накладная);
   Ит_1.ВыполнитьЗапрос(,Дата_,"ДЦ",,,,"Операция");
       Ит_1.ВыбратьСубконто(1);
       Пока Ит_1.ПолучитьСубконто(1) = 1 Цикл
           Ит_1.ВыбратьСубконто(2);
           Пока Ит_1.ПолучитьСубконто(2) = 1 Цикл
       РачетныйСчет = "";
       СуммаОбщая   = "";
       СуммаПросроченная = "";
       Если Ит_1.СКД("С") - Ит_1.СКК("С") <> 0 Тогда
           Если Ит_1.Субконто(2).Вид() = "РасходТовара" Тогда
           спрБанка.ИспользоватьВладельца(Ит_1.Субконто(1).ТекущийЭлемент());
           Контрагент            = Ит_1.Субконто(1);
           УНП                   = Ит_1.Субконто(1).УНН;
           спрБанка.ВыбратьЭлементы();
           Пока спрБанка.ПолучитьЭлемент() = 1 Цикл
               Если Число(спрБанка.Код) = 1 Тогда
                   РачетныйСчет          = спрБанка.Наименование + ": р/с №" + СокрЛП(спрБанка.НомерСчета);
               Иначе
                   РачетныйСчет = "";
               КонецЕсли;
           КонецЦикла;
           СуммаОбщая            = Ит_1.СКД("С") - Ит_1.СКК("С");
           ДнейДляТреб = Ит_1.Субконто(2).ДнейТребования;
           ДатаДока = Ит_1.Субконто(2).ДатаДок;
           ЧислоДняСПросрочкой  = ДатаДока + ДнейДляТреб;
           Если ЧислоДняСПросрочкой > Дата_ Тогда
           СуммаПросроченная     =  Ит_1.Субконто(2).Сумма;
       Иначе
           СуммаПросроченная = "";
       КонецЕсли;
           Таб.ВывестиСекцию("Строка");
           
   КонецЕсли;
КонецЕсли;
   КонецЦикла;
КонецЦикла;
   Таб.ПараметрыСтраницы(2, , , , , , , , , 1);
   Таб.Опции(0, 0, 6, 13, "дебиторская задолжность");
   Таб.ТолькоПросмотр(1);
   Таб.Показать("дебиторская задолжность");
КонецПроцедуры
   //*******************************************
   Функция ОбработкаЯчейкитаблицы(Контрагент)
       ФлагСтандОбраб = 0;
       Табл = СоздатьОбъект("Таблица");
       Табл.ИсходнаяТаблица("Расшифровка");
       Табл.ВывестиСекцию("Шапка");
       Би = СоздатьОбъект("БухгалтерскиеИтоги");
       Би.ИспользоватьСубконто(ВидыСубконто.Контрагенты,Контрагент);
       Би.ИспользоватьСубконто(ВидыСубконто.Накладная);
       Би.ВыполнитьЗапрос(,Дата_,"ДЦ",,,,"Операция");
Би.ВыбратьСубконто(1);
Пока Би.ПолучитьСубконто(1) = 1 Цикл
   Би.ВыбратьСубконто(2);
   Пока Би.ПолучитьСубконто(2) = 1 Цикл
       Если Би.СКД("С") - Би.СКК("С") <> 0 Тогда
       дОК = Би.Субконто(2);
       ДатаДока = Би.Субконто(2).ДатаДок;
       Сумма = Би.Субконто(2);
       Табл.ВывестиСекцию("Строка");
   КонецЕсли;
   КонецЦикла;
КонецЦикла;
Табл.Показать("Расшифровка");
КонецФункции
18 alex_reglament
 
12.12.11
20:26
люююююдииииии я нажал сформировать в своюм отчете и уменя вылезло огромная куча таблиц че делать???? я дазже не нажимал на ячейку первой таблицы потому что нажал чформировать  и поехало
19 alex_reglament
 
12.12.11
20:27
+(18) код использова (17)
20 alex_reglament
 
12.12.11
20:27
он уже 4 - ре минуты формируется
21 alex_reglament
 
12.12.11
20:28
у меня уже комп зависать начинает
22 alex_reglament
 
12.12.11
20:28
помагите
23 Ёпрст
 
12.12.11
20:29
Для начала, Процедура ОбработкаЯчейкиТаблицы

А во-вторых, чего в самой ячейке в первой таблице напихал ?
:)
24 Ёпрст
 
12.12.11
20:29
+есть еще клавиша Esc, если че
25 alex_reglament
 
12.12.11
20:30
я знаю что есть еще и клавиша Esc вот только  она не помогла сколько циклов было столько я в нее и тыкал
26 alex_reglament
 
12.12.11
20:31
обращение
короче вот ОбработкаЯчейкитаблицы(Контрагент)
27 alex_reglament
 
12.12.11
20:31
это в свойствах ячейки 1 -вой таблицы
28 Ёпрст
 
12.12.11
20:33
(26) п...ц

Оставь там КОНТРАГЕНТ
29 Ёпрст
 
12.12.11
20:34
+28 ну и переделай на ПРОЦЕДУРУ..

и ЧИТАЙ (9) - там по-русски пишут.
30 alex_reglament
 
12.12.11
20:35
как передать в процедуру
31 alex_reglament
 
12.12.11
20:36
я оставил там контрагент теперь жму двараза наячейке первой табл мне открывается форма элемента справочника контрагенты
32 alex_reglament
 
12.12.11
20:36
что делать?
33 Ёпрст
 
12.12.11
20:37
:)))))))))))))))))))))))))

//  Функция ОбработкаЯчейкитаблицы(Контрагент)
   Процедура ОбработкаЯчейкитаблицы(Контрагент)
 ........
//КонецФункции
 КонецПроцедуры
34 Ёпрст
 
12.12.11
20:38
(32) Однажды Чернышевский позвонил своему корешу Достоевскому в 3 часа ночи :
-Федя, я тут девчонку снял, привёл домой, раздел.. Что делать ?

На утро Достоевский написал роман "Идиот"
35 alex_reglament
 
12.12.11
20:39
:))) СПАСИБО НО НЕ ЗА (34) А ВЫШЕ ВСЕ ОК БЛИН ЭТО Ж НАДО НУЖНО БЫЛО НЕ ФУНКЦИЮ А ПРОЦЕДУРУ ПОЛЬЗОВАТЬ
36 BuHu
 
12.12.11
20:42
и вы ему еще помогали...
37 alex_reglament
 
12.12.11
20:44
(36) а что я сделал???
38 alex_reglament
 
12.12.11
20:44
я по к (36)