Имя: Пароль:
1C
1C 7.7
v7: 3 закладки, 2 таблицы
,
0 Масянька
 
29.11.12
17:23
Вечер добрый!
Чего-то я, наверное, не понимаю:
внешняя обработка, 3 закладки, на 2 закладках есть таблицы (разные). Так вот - таблица на первой закладке не растягивается на всю форму. На 2 второй закладке - таблица отображается как надо.
Подскажите, пожалуйста, в чем косяк?
42 Масянька
 
30.11.12
13:25
Все, я пошла топиться в холодном море.....
43 Масянька
 
30.11.12
13:27
А лежать где должна? В Bin'е или же указывать полный путь?
44 Ёпрст
 
30.11.12
13:27
(43) либо в бине, либо в каталоги иб, либо в каталоге пользователя
45 Ёпрст
 
30.11.12
13:28
ищет в обратном порядке, если не указан полный путь
46 Масянька
 
30.11.12
13:28
Подключение прошло.
Теперь плюется:
ФормаРасш=СоздатьОбъект("Общие.Форма.Привязка");
{\\MANAGER2\D\1СV7\DB\ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ\КОРРЕКТИРОВКАНОМЕНКЛАТУРЫ_1.ERT(23)}: Неудачная попытка создания объекта (Общие.Форма.Привязка)

Топиться?
47 Масянька
 
30.11.12
13:29
+(46) При подключении указала полный путь, лежит не в Bin'е.
48 Ёпрст
 
30.11.12
13:29
(46) прочитать (41) повнимательнее
49 Ёпрст
 
30.11.12
13:30
(47) в предприятии - помощь о программе - должны быть вкладки от формекса и 1срр, + на последней имена зарегестрированных классов
50 Масянька
 
30.11.12
13:31
(49) Formex - есть, с++ - нету.....
Defcls.prm - есть, надо в нем прописать?
51 Масянька
 
30.11.12
13:32
+(50) А в нем написато: //#include SystemData\Classes\Defcls.prm
52 Масянька
 
30.11.12
13:33
(49) появилось.....
53 Ёпрст
 
30.11.12
13:33
да.


ЗЫ: можешь еще это использовать

http://www.1cpp.ru/forumfiles/Attachments/_demo_Splitter.zip
пример и описалово в этой ветке

http://www.1cpp.ru/forum/YaBB.pl?num=1353356102/27#27
54 Масянька
 
30.11.12
13:34
(53) Огромное спасибо! Спас от утопления....
55 Ёпрст
 
30.11.12
13:35
(51) вот по пути SystemData\Classes
у тебя должен валятся файл описалова класса Defcls и сама реализация класса (либо в ert, либо в текстовом файле)
56 Ёпрст
 
30.11.12
13:36
да, в свойствах формы нужно сымать галку - изменять размер.
57 Масянька
 
30.11.12
13:39
В - \\Manager2\d\1Сv7\DB\SystemData\classes\ЭлементыФормы - есть - ЭлементыФормы.Привязка.ert, но при запуске моей обработки ругается - ФормаРасш=СоздатьОбъект("Общие.Форма.Привязка");
{\\MANAGER2\D\1СV7\DB\ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ\КОРРЕКТИРОВКАНОМЕНКЛАТУРЫ_1.ERT(23)}: Неудачная попытка создания объекта (Общие.Форма.Привязка)
58 Масянька
 
30.11.12
13:40
Процедура ПослеОткрытия()

   Отв = ЗагрузитьВнешнююКомпоненту("D:\1Сv7\DB\SystemData\dll\1cpp.dll");
   
   Если Отв = 0 Тогда
       Сообщить("Не удалось загрузить компоненту 1cpp.dll.");
       СтатусВозврата(0);
       Возврат;
   КонецЕсли;
   
   ФормаРасш=СоздатьОбъект("Общие.Форма.Привязка");
   ФормаРасш.УстановитьФорму(Форма);
   ФормаРасш.Привязка();

КонецПроцедуры    // ПослеОткрытия
59 Ёпрст
 
30.11.12
13:43
(58) дык классы не грузятся в после открытия..
60 Ёпрст
 
30.11.12
13:45
в приначале работы системы втыкай загрузку вк, либо пользуй

метаинфо и ЗагрузитьОписаниеКлассов
61 Масянька
 
30.11.12
13:45
(59) Перенесла в ПриОткрытии - та же фигня......
62 Ёпрст
 
30.11.12
13:45
в своей поделке, предварительно проверив, загружен или нет данный класс до того как.
63 Mikeware
 
30.11.12
13:46
(53) в садовниковском классе тоже сплиттеры есть..
64 Ёпрст
 
30.11.12
13:46
(63) я знаю, просто вк порадовала.. простотой
65 Mikeware
 
30.11.12
13:46
(58)1спп грузи при начале работы системы.
66 Ёпрст
 
30.11.12
13:47
+ цвет сплиттера задается
67 Масянька
 
30.11.12
13:47
Процедура ПриОткрытии()  

     Форма.ИспользоватьЗакладки(1);
   Форма.Закладки.ДобавитьЗначение("Корректировка реквизитов");
   Форма.Закладки.ДобавитьЗначение("Поиск помеченных на удаление");
   Форма.Закладки.ДобавитьЗначение("Печать списка");
             
   Форма.ИспользоватьСлой("КорректировкаЭлементов, Кнопки");

   Закладка = 1;
   
   УчетГруппы            = 0;
   ПолеНаименование    = 1;

   ТаблицаВыборки.Очистить();
   
   ТаблицаВыборки.НоваяКолонка("Пометка"              ,"Число",  4, 0,"Вкл"                , 6);
   ТаблицаВыборки.НоваяКолонка("Код"                  ,        ,   ,  ,"Код"          ,);
   ТаблицаВыборки.НоваяКолонка("Наименование"        ,        ,   ,  ,"Наименование",);
   ТаблицаВыборки.НоваяКолонка("ПолноеНаименование",        ,   ,  ,"Полное наименование",);

   ТаблицаВыборки.ВыводитьПиктограммы("Пометка",2);
   ТаблицаВыборки.ВидимостьКолонки("ПолноеНаименование", 0);
   
   ТаблицаВыборкиУдаленных.Очистить();
   
   ТаблицаВыборкиУдаленных.НоваяКолонка("Код"                  ,        ,   ,  ,"Код"          ,);
   ТаблицаВыборкиУдаленных.НоваяКолонка("Наименование"        ,        ,   ,  ,"Наименование",);
   ТаблицаВыборкиУдаленных.НоваяКолонка("ПолноеНаименование",        ,   ,  ,"Полное наименование",);
   ТаблицаВыборкиУдаленных.ВидимостьКолонки("ПолноеНаименование", 0);

   Форма.кнЗаменить.Доступность(0);
   
   //ПослеОткрытия();
   Отв = ЗагрузитьВнешнююКомпоненту("D:\1Сv7\DB\SystemData\dll\1cpp.dll");
   
   Если Отв = 0 Тогда
       Сообщить("Не удалось загрузить компоненту 1cpp.dll.");
       СтатусВозврата(0);
       Возврат;
   КонецЕсли;
   
   ФормаРасш=СоздатьОбъект("Общие.Форма.Привязка");
   ФормаРасш.УстановитьФорму(Форма);
   ФормаРасш.Привязка();
   
КонецПроцедуры    // ПриОткрытии


(65) Народ сидит.
68 Ёпрст
 
30.11.12
13:48
(67) :)
69 Mikeware
 
30.11.12
13:50
(68) база сиквельная?
70 Масянька
 
30.11.12
13:51
Да, блин, вам смешно.....


Процедура ПриНачалеРаботыСистемы()
.............
   Отв = ЗагрузитьВнешнююКомпоненту("D:\1Сv7\DB\SystemData\dll\1cpp.dll");
   
   Если Отв = 0 Тогда
       Сообщить("Не удалось загрузить компоненту 1cpp.dll.");
       СтатусВозврата(0);
       Возврат;
   КонецЕсли;


В моей обработке в ПриОткрытии
.....
   ФормаРасш=СоздатьОбъект("Общие.Форма.Привязка");
   ФормаРасш.УстановитьФорму(Форма);
   ФормаРасш.Привязка();


Ругается - ФормаРасш=СоздатьОбъект("Общие.Форма.Привязка");
{\\MANAGER2\D\1СV7\DB\ДОПОЛНИТЕЛЬНЫЕ ВОЗМОЖНОСТИ\КОРРЕКТИРОВКАНОМЕНКЛАТУРЫ_1.ERT(70)}: Неудачная попытка создания объекта (Общие.Форма.Привязка)
71 Mikeware
 
30.11.12
13:52
(70) классы где лежат?
в списке загруженных классов они есть?
72 Ёпрст
 
30.11.12
13:52
МетаИнфо = СоздатьОбъект("MetaInfoClasses");
   Если  МетаИнфо.КлассСуществует("Общие.Форма.Привязка")=0 Тогда
МетаИнфо.ЗагрузитьОписаниеКлассов("класс Общие.Форма.Привязка = ТутИмяТелаКласса.prm{}");
73 Масянька
 
30.11.12
13:54
(71) Где этот список?
74 Масянька
 
30.11.12
13:55
Да убейте же меня!!!!!!
Ну, или мозги другие дайте....
75 Масянька
 
30.11.12
13:55
В конфигураторе есть: ЭлементыФормы.Привязка
76 Mikeware
 
30.11.12
13:56
(74) Меню - Помощь-О Программе- закладка "1с++", в ней список ...
77 Масянька
 
30.11.12
13:56
(72) В глобальнике или в моей фигне?
78 Ёпрст
 
30.11.12
13:58
(77) это в твоей поделке, если не хочешь грузить 1cpp в ПриНачалеРаботыСистемы или, если хочешь дополнительно потом "подгрузить" классы свои
79 Ёпрст
 
30.11.12
13:59
И это, 1cpp какой версии хоть используешь ?
80 Масянька
 
30.11.12
14:01
3.0.1.25
81 Масянька
 
30.11.12
14:05
(76) Там только разработчики.
(72) Ругаться перестал :)))))))))))))
82 Mikeware
 
30.11.12
14:07
(80) не мешало бы обновить
83 Mikeware
 
30.11.12
14:08
(81) а ниже - скроллером опуститься?
84 Масянька
 
30.11.12
14:09
Процедура ПроверкаМаксим() //проверка максимилизации окна

   Если ТипЗначения(грФорма)=100 Тогда
       шир=грФорма.Ширина;
       выс=грФорма.Высота;
   Иначе
       Возврат;
   КонецЕсли;
   Если (шир<>олдшир)или(выс<>олдвыс) Тогда
       непересчитывать=0;
       Если (олдшир=0)и(олдвыс=0) Тогда
           непересчитывать=1;
       КонецЕсли;
       олдшир=шир; олдвыс=выс;
       Если непересчитывать<>0 Тогда
           Возврат;
       КонецЕсли;
       Атрибут=гРФорма.ПолучитьАтрибут("ТаблицаВыборки");
       Атрибут.УстановитьКоординаты(10,10,грФорма.Ширина-20,грФорма.Высота-100);
       Атрибут1=гРФорма.ПолучитьАтрибут("ТаблицаВыборкиУдаленных");
       Атрибут1.УстановитьКоординаты(10,10,грФорма.Ширина-20,грФорма.Высота-100);
       КонецЕсли;
КонецПроцедуры

Процедура ПриОткрытии()  
.....
МетаИнфо = СоздатьОбъект("MetaInfoClasses");
   Если  МетаИнфо.КлассСуществует("Общие.Форма.Привязка")=0 Тогда
МетаИнфо.ЗагрузитьОписаниеКлассов("класс Общие.Форма.Привязка = Defcls.prm{}");
КонецЕсли;
   
КонецПроцедуры    // ПриОткрытии


Процедура ПриИзмененииРазмераОкна(ТипСобытия,Ширина,Высота)

       проверкамаксим();


КонецПроцедуры // ПриИзмененииРазмеровОкна


Ругни нет, но и не растягивает.....
85 Масянька
 
30.11.12
14:09
(83) Бета-тестеры.
86 Масянька
 
30.11.12
14:11
Может тут  - МетаИнфо.ЗагрузитьОписаниеКлассов("класс Общие.Форма.Привязка = Defcls.prm{}");
КонецЕсли; - нужно писать не Defcls?
87 Mikeware
 
30.11.12
14:16
(84)ПриИзмененииРазмераОкна(ТипСобытия,Ширина,Высота) - формексовское событие.
формекс-то загружен?
88 Ёпрст
 
30.11.12
14:17
(86) :)))))))
ну ясен пень, там надо писать путь к описалову класса
89 Ёпрст
 
30.11.12
14:17
т.е имя самой реализации класса, Вася.ert к примеру
90 Ёпрст
 
30.11.12
14:19
(84) и.. куча мала у тебя в коде.

Нафига явно прописывать код ПроверкаМаксим()и использоватьего потом, если пользуешься классом привязок ?
91 Масянька
 
30.11.12
14:20
(90) Ты же написал prm.....
92 Ёпрст
 
30.11.12
14:21
(91) :)

у еня часть классов в ert, часть в текстовых файлах (prm) валяется.
93 Масянька
 
30.11.12
14:22
Написала:
етаИнфо.ЗагрузитьОписаниеКлассов("класс Общие.Форма.Привязка = ЭлементыФормы.Привязка.ert");
Убрала нафиг - ПриИзмененииРазмераОкна.
Запустила - ничего не растягивает, но и не ругается....
94 Ёпрст
 
30.11.12
14:23
чую .. с таким подходом, освоение классов будет долгим..

Мот проще на (53) посмотришь ? Там пример готовый.
95 Ёпрст
 
30.11.12
14:25
(93) ну ясен пень. Теперь ты должна в ПослеОткрытия прописать строчку в ПриИзмененииРазмеров окна строчку и в ПриОткрытии
привязать все контролы к форме или к другим атрибутам.
96 Ёпрст
 
30.11.12
14:25
смотри примеры на закладке Описание у реализации класса
97 Ёпрст
 
30.11.12
14:26
там обычна, вся инфа о классе и как его юзать
98 Масянька
 
30.11.12
14:29
(96) Я правильно понимаю: Конфигурация - 1С++ - и там разные буквы. Только вот на вкладке Описание - пусто.
99 Ёпрст
 
30.11.12
14:31
(98) нет

Открываешь пофигуратор, в нём - реализацию класса (файлик
ЭлементыФормы.Привязка.ert)

в нем на вкладке Описание - примеры и подсказка по всем методам класса
100 Масянька
 
30.11.12
14:34
(99) Спасибо ОГРОМНОЕ!!!!!!!!!!!
101 Масянька
 
05.12.12
17:40
Ёпрст4 и Mikeware - нижайщий поклон и тысяча поцелуев!!!!!!!
У меня получилось!!!!!!! :)))))))))
102 Mikeware
 
05.12.12
18:12
(101) "если долго мучиться - что-нибудь получится"©
103 Ёпрст
 
05.12.12
18:16
(101) через что именно сделала то хоть ?
104 Масянька
 
06.12.12
09:13
(103) 1с++
105 Ёпрст
 
06.12.12
09:14
(104) т.е через класс привязок ?
106 Масянька
 
06.12.12
09:18
(105) Угу. 3 дня. Но - шмогла :)))))
Спасибо!!!!!!
107 Масянька
 
06.12.12
09:19
Я уже запуталась, чей это пример "Demo_RiK_Splitters" - многое стало понятно из него. Остались еще вопросы, но попозже. Пока буду сама ковыряться.
108 Масянька
 
06.12.12
12:50
Я прям пищу от восторга!!!! И растягивается, и сворачивается....
Красота!
СПАСИБО!!!!!!
109 Mikeware
 
06.12.12
12:57
(107) Это конторы садовникова классы. Их пейсалель - Алексей Диркс - тут частенько появляется...
110 ADirks
 
06.12.12
13:33
(109) Ойшипка в слове "пейсатель"!
111 Масянька
 
06.12.12
13:34
(110) СПАСИБО Автору!!!!!!
113 Mikeware
 
06.12.12
13:35
(110) приношу глубочайшие извинения.
и благодарность за напейсаные классы! :-)
Хотел тебя пивом напоить, но не получилось...
114 Масянька
 
06.12.12
13:37
+(113) "Приятно ошарашен!" (С)
115 Cthulhu
 
06.12.12
14:53
В данном случае ВК - из пушки по воробъям, что называется.
Сколько времени уже потрачено на внесение и исправление ошибок?.. да раз в десять бы быстрее было слепить одну и ту же (и единственную) ТЗ на форме - которую пере-заполнять при выборе закладки (с активизацией ранее запоМненных строки+колонки).
но, как в той поговорке - про голову, ноги и покой (ну или в анекдоте про гамак, водолазный костюм и лыжи).
116 trad
 
06.12.12
15:13
(115)но зато теперь у человека есть скилл привязывать за любые  места вообще любые контролы
117 Ёпрст
 
06.12.12
15:14
+116 и сплитеры
118 trad
 
06.12.12
15:15
+117 да. и сплиттеры
119 toypaul
 
гуру
06.12.12
15:15
(0) косяк в платформе :) а растягивается по-моему первая согласно упорядочивания.
120 Cthulhu
 
06.12.12
15:49
(116): при всем моем уважении.
предложение решения проблемы средствами ВК имеет смысл ТОЛЬКО ЕСЛИ выполняется условие: (решение штатными средствами невозможно)ИЛИ(вопрошающий знаком с ВК ровно настолько, чтобы его трудозатраты на разработку такого решения были существенно меньше трудозатрат на решение штатными методами).
тут же... см.(115) - особенно последний абзац.
121 Масянька
 
06.12.12
16:33
(115) Даже не знаю, что ответить....
122 ADirks
 
06.12.12
16:35
(120) Я бы в этот список добавил "если штатное решение - полно гамно". Первым пунктом.
123 Масянька
 
06.12.12
16:41
+(115) Запорожец - тоже машина, но предпочитали (почему-то) Жигули. А Волга - предел мечтаний. :)))))
124 Mikeware
 
06.12.12
16:49
(121) что тут ответишь... он с голодухи сожрал собственный мозг, только и всего...
125 Cthulhu
 
06.12.12
17:06
(122): пихать оценочное суждение (построенное на личных эстиетических предпочтениях) в условие выбора способа решения задачи, используемой другими - глупость. любым пунктом.
в данном же конкретном случае штатно решается вполне себе корректно. и - как мы видим из всего данного топика - куда как более эффективно (по крайней мере в данном случае, вполне себе в полном соответствии с (120)).
и. доп.плюс всех решений, выполненнвых штатными методами - отсутствие требования непременного знания нештатных методов для возможности более эффективного (по трудозатратам и стоимости) сопровождения и доработок.
(123): т.е. по сути возразить нечего, но пукнуть в качестве возражения на предмет собственного непрофессионализма и неэффективности - хочется... понятно.
(124): странный ты. я ни полуслогом не говрил о неприменимости ВК вообще. лишь оговорил некоторые аспекты выбора способа решения (в принципе, любой) задачи. и тем более странно видеть подобные высеры именно от тебя (и огорчительно - в силу имеющегося к тебе, в-общем, то уважения)
126 Масянька
 
06.12.12
17:09
(125) А мне - нравится! Супер работает. Причем, обе таблицы могут быть заполнены и все видно.
Короче, "Замечательно входит и выходит".

PS Ну, и я чуть-чуть умнее стала :))))) Когда-нибудь, может быть.....
127 Mikeware
 
06.12.12
17:14
(125) Если что-то делается с помощью ВК быстрее, проще и красивее - это уже достаточный аргумент для использования ВК.
(126) следующий шаг - сплиттер между ними, чтоб можно было одну расширить за счет другой...
ну а потом - заменить ТЗ на ТП, и освоить драг-н-дроп :-)
128 Cthulhu
 
06.12.12
17:15
(126): "нравится" - несомненно аргумент... при выборе решения "для себя" и реализации его в своем личное время.
ЗЫ: и - но вот, сугубо например - на вин7 попробуй это своё решение... и представь, что юзать его нужно именно на железе, которое кроме как под вин7(8) не имеет дров...
129 ADirks
 
06.12.12
17:16
(125) Это не только мои эстетические предпочтения. Когда делаешь людям нормальные привязки в формах - аж пищщат. А когда вместо всяких ТЗ и МногострочныхЧастей делаешь нормальное ТП - так аж вообще.
130 Cthulhu
 
06.12.12
17:17
(127): "проще" - да, "красивее" - нет.
в данном случае - если хотя бы по срокам в данном топике сориентироваться - не "проще".
131 ADirks
 
06.12.12
17:20
(130) в данном топике человек учится, ясен перец это не быстро
132 Масянька
 
06.12.12
17:22
(130) "Лучше день потерять, зато потом за 5 минут долететь" (С)
133 Mikeware
 
06.12.12
17:25
(130) "лучше день потерять,а потом за час долететь"©
если бы это было разовое применение - проще перезаливать таблицу. но человек вместо тупой перезаливки получил и освоил удобный гибкий инструмент. Первичные потери времени значительные, последующие использования - "на автомате"
134 Масянька
 
06.12.12
17:30
(133) Да, да, да-да-да! Намного проще, чем снеговик со своими привязками.
135 Cthulhu
 
06.12.12
19:57
(131),(132),(133): несомненно вы все правы. во всем. кроме единственной небольшой, но очень важной оговорки - без учета того того, что данная конкретная задача решается в обстоятельствах, когда скорость решения - далеко не на последнем месте.
с учетом сказанного - второй абзац (120), в котором вполне конкретно описан вполне себе строгий способ выбора методики решения этого и сходных вопросов. согласитесь - и красота, и обучение, и приобретение навыков - вполне себе уместны именно в случаях, когда это самое условие (применения ВК) выполняется - например, в части первого под-условия. ИЛИ - ДА, несомненно, изучение возможностей ВК для применения их на практике очень уместно, и даже похвально в личное время.
так что по всему выходит, что вы все со мной фактически(!) не(!) спорите.
136 ADirks
 
06.12.12
20:08
(135) а чё, вот обязательно надо спорить штоль?
есть же такое понятие "диалог", на или "обсуждение" там
137 Cthulhu
 
06.12.12
20:22
(136): да нет. но в данном случае способ подачи коимментариев, обращенных ко мне (в частности, тобой) - не оставляет возможности иных толкований.
138 Torquader
 
07.12.12
02:04
Кстати, вот, специалисты по семёрке расскажите.
Если ли какая-нить внешняя компонента, которая позволяет открыть окно браузера внутри 1С и получать из него события.
Просто у меня сделано через прослойку VbScript и окно открывается поверх 1С, и когда 1С погибает, то окно браузера просто перестают отвечать на действия (и пользователь видит сообщение, что сейчас самое время нажимать Alt+F4 и начинать всё сначала).
Браузер был выбран потому, что количество и тип элементов управления на форме определяется в момент работы с ней, плюс возможность их перемещения.
В описании внешних компонент сказано, что через них можно открывать свои окна, а каким образом к ним можно какой-то код на 1С привязать, чтобы не через Dispacth в 1С "ходить".
139 Злопчинский
 
07.12.12
05:46
(138) есть точно что можно бравзер открыть внутри 1С. А вот получать из него события - хз...
посмотри может что полезное
http://infostart.ru/public/16794/
140 ADirks
 
07.12.12
06:47
141 Torquader
 
07.12.12
21:28
(139) Первое, что я там вижу, Net FrameWork - как оказалось, он с тонкими клиентами настолько не дружит, что сервак просто "блокируется" и ни на что вообще не отвечает (выглядит как бесконечный цикл в обработчике прерываний), так что без него.
P.S. сейчас делаю "удалённый сервер", когда форма MsHta на одном компьтере, а 1С - на другом.
Что касается управления 1С, то понятно, что можно через любую внешнюю обработку передать IDispacth от 1С во внешнее приложение, и оттуда рулить 1С, но многопоточность приподносит множество сюрпризов.
Потом, оказалось, что вообще можно посылать DDE-запросы к 1С, которые исполняются в почти любой момент (при переходе кода с одной строчки на другую), но они работают "параллельно", то есть вклиниваются между строками кода, что очень интересно, но также и очень опасно - можно в процессе проведения документа выполнить что-то еще.
А если посылать 1С сообщения через SendMessage, то можно в момент проведения документа пересчитать бухгалтерские итоги - больше всего меня удивило, что 1С в этом случае не падает.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс