Имя: Пароль:
1C
1C 7.7
v7: Объединение конфигураций - картинки
0 Злопчинский
 
18.03.18
21:37
1. есть какая-то конфига клиента
2. есть специфическая "подсистема", оформленная как отдельная конфига поставщика специфического решения
3. в "подсистеме" поставщика используются картинки
4. клиент получает "подсистему" и внедряет ее в свою конфигу путем объединения с конфигой-подсистемой поставщика

Вопрос: как получить в итоговой конфиге покупателя так, чтобы в подсистеме все картинки были на своем месте?
1 KRV
 
18.03.18
21:49
Взять девочку, жестко обучить Crl+C & Ctl+V... сейчас во всех госорганах таким способом повышают занятость населения. )))  По теме: пока не ясно как реализованы картинки - отдельным каталогом и открываются в, допустим, браузере или интергированы в конфигурацию..
2 MWWRuza
 
гуру
18.03.18
21:51
(1)Я так понял, что имеется в виду библиотека картинок...

В библиотеке картинок, как я понял, они просто "по счету" идут. Поэтому, боюсь, что никак... Я обычно вручную после объединения картинки правлю. Много мест, где они используются-?
3 MWWRuza
 
гуру
18.03.18
21:53
Буду рад ошибаться, и кто-то предложит решение. Потому, что для меня вопрос очень актуальный... Я в своей алкогольной конфиге регулярно правлю в конечных базах :-(((
4 KRV
 
18.03.18
21:55
ну вот и нет смысла пока гадать)))  У меня конфига была "специфичная"на обслуживании - так там все договоры в виде внешних форм, открываемых в Ворде - и, после любой "хотелки" приходилось по сёлам рассылать комиксы "как добавить новый договор, чтобы тот открылся" ))) С приходом живого интернета в села - стало проще.
5 MWWRuza
 
гуру
18.03.18
21:56
(1)копи-паст тут не поможет. Приходится открывать все формы, и выбирать правильные картинки из библиотеки...
6 Злопчинский
 
18.03.18
23:15
как картинки предотвратить во внешних обработках и отчетах - это известно. а вот в обьетках конфигурации - значит, никак...
7 MWWRuza
 
гуру
18.03.18
23:37
Давай подождем до завтра, подключится "коллективный разум", может и есть решение... Ну, уж очень не удобно...
8 Злопчинский
 
19.03.18
00:31
давай подождем
9 vcv
 
19.03.18
06:41
Может назначить картинкам идентификаторы и в нужные места вставлять их посредством FormEx?
10 Смотрящий
 
19.03.18
07:58
(0) Поименуй картинки в конфе, типа "злп_НеведомаяМуйня", считывай по имени
11 aka AMIGO
 
19.03.18
08:15
Интересуюсь, а GCOMP не поможет? там ведь после разложения конфигурации библиотека картинок сразу видна.
Вот её и заменить стразу, т.е. перед обновлением бд.
Тогда в накатываемой и целевой бд библиотека картинок будет одной и той-же.

ЗЫ. это если я с просыпу правильно понял пожелание Злобчинского :)
12 Ёпрст
 
19.03.18
11:04
(0) храни картинки в мокселе. Тогда будешь полностью независим от конфы клиента.
13 Ёпрст
 
19.03.18
11:04
и его библиотеки картинок
14 MWWRuza
 
гуру
19.03.18
11:26
Сейчас попробовал. Добавлено в процедуру формы "ПриОткрытии()"
    Карт = СоздатьОбъект("Картинка");
    Карт.Загрузить("ЧернГалочка");
    ЗнакВопрос.УстановитьКартинку(Карт);
Работает без всяких комонент, средствами языка.
"ЧернГалочка" - идентификатор картинки, задан в библиотеке.
"ЗнакВопрос" - Идентификатор картинки на форме.
На форме в картинку выбран элемент библиотеки со значком вопроса.
При открытии на форме рисуется "ЧернаяГалочка", и плевать ей на то, что в картинку вопросик выбран.
В принципе, решает сабжевый вопрос, как я понимаю. Как-бы мы не объединяли, в каком-бы порядке картинки не шли после этого в библиотеке, на форму они бцдут подтягиваться по идентификаторам.
15 Злопчинский
 
19.03.18
13:30
(14) это картинки на форме, а пиктограммы на кнопках?
16 Злопчинский
 
19.03.18
13:30
(12) думаю, что не понял.. это как?
17 MWWRuza
 
гуру
19.03.18
14:53
(15)Да, тут так просто не работает...

Не так: кнОК.УстановитьКартинку(Карт);
и не так: Форма.кнОК.УстановитьКартинку(Карт);

А вообще, к картинкам на кнопках, есть доступ программно?
Я как-то с этим пока не сталкивался, не знаю, можно ли.
Может с помощью Формекса - ?
18 MWWRuza
 
гуру
19.03.18
14:57
(16)Ну, очевидно, через меню "Таблица" => "Вставить рисунок" => "Картинка"...
Но, только в нашей задаче это не поможет.
19 Ёпрст
 
19.03.18
18:46
(16) Это если будешь использовать свои кнопки, на активиксе, например.

Если нужно из библиотеки и чтоб не "съезжали", то назначай им идентификатор и потом так:

РасшФормы = СоздатьОбъект("РасширениеФормы");
РасшФормы.УстановитьФорму(Форма);
АтрФормы = РасшФормы.ПолучитьАтрибут("кнСформировать");
АтрФормы.Картинка = "ИмяКартинкиВася";
20 MWWRuza
 
гуру
19.03.18
18:56
Не получается...

    РасшФормы = СоздатьОбъект("РасширениеФормы");
    РасшФормы.УстановитьФорму(Форма);
    АтрФормы = РасшФормы.ПолучитьАтрибут("ОбновитьСписок");
    АтрФормы.Картинка = "ЗнакВопрос";

"ОбновитьСписок" - идентификатор кнопки,
"ЗнакВопрос" - Имя картинки в библиотеке.

Все это, всместе с загрузкой ФормЕкса, в процедуре "ПриОткрытии()"
Ошибок никаких не пишет, но и картинку на кнопке не выводит...
21 MWWRuza
 
гуру
19.03.18
19:09
При этом, конструкуция:

АтрФормы.Заголовок = "Вася!";

работает нормально, заголовок устанавливается, а картина нет...
22 MWWRuza
 
гуру
19.03.18
19:22
В отладчике:
АтрФормы.Тип = 3

Что такое 3 -? Кнопка?
23 Злопчинский
 
19.03.18
19:40
РасширениеФормы надо юзать ПослеОткрытия, когда форма уже физически создана
24 Злопчинский
 
19.03.18
19:41
(19) ..ЛЯ! Оказывается, есть кнопочка ИДЕНТИФИКАТОР когда открываешь библиотеку картинок!!! очуметь...
25 Злопчинский
 
19.03.18
19:43
тогда остался вопроскартинки с идентифкатороами из общей билиотеки картинок конфгурации постащика - при обьединении конфигурации покупателя с конфигой поставщика - будут замещаться в общую библиотеку картинок с синхронизацией по идентифкаторам? а если идентификатора нет - то будут добавляться
26 MWWRuza
 
гуру
19.03.18
19:53
(23)О!!! Так работает, выводит картинку на кнопку по идентификатору.

(25)Ну, наверное так. При объединении выбирать только библиотеку картинок, и способ "Объединять объекты". Потом, объединять остальное, если надо с "Замещать объекты". В конфигурации покупателя, скорее всего, картинки в библиотеке будут без идентификаторов... Во всяком случае, в типовых я такого не замечал.
27 MWWRuza
 
гуру
19.03.18
20:09
Блин, заработался совсем... Библиотеку картинок нельзя объединить отдельно, только вместе ГМ и общими таблицами...

Но, если объединять, то картинки замещаются - те, которые были с без идентификатора, становятся с идентификатором. Х.З. по чем он их сравнивает... Наверное по двоичному содержимому. Или, не зависимо от положения переключателя способ, библиотека всегда замещается, не проверил.
28 Злопчинский
 
19.03.18
20:47
(27) то есть - не подходит...
29 MWWRuza
 
гуру
19.03.18
21:42
Ну, в моем случае наверное подойдет. У меня есть некая "эталонная" конфигурация, которую я регулярно "допиливаю"... И потом периодически, приходится обновлять ее у клиентов, объединяя их рабочие конфы, со своей "эталонной". Но, изначально, их конфигурации были разными. Поэтому, приходится во всех формах, где я использовал свои картинки, их исправлять после объединения, вручную, так, как они "съезжают", в связи с тем, что исходные библиотеки картинок у них разные были. А так, можно у каждого клиента при следующем обновлении, присвоить картинкам идентификаторы, и забыть об этом кошмаре, программно устанавливать их в нужных формах по идентам.
Один раз назначить идентификаторы, все равно проще, чем каждый раз перелопачивать картинки в нескольких формах...
30 MWWRuza
 
гуру
19.03.18
21:45
Тем более, у меня они только на формах, на кнопках картинок нет, поэтому можно и штатными средствами обойтись, как в(14)
31 Злопчинский
 
19.03.18
22:02
(29) "А так, можно у каждого клиента при следующем обновлении, присвоить картинкам идентификаторы"
- муторно
32 MWWRuza
 
гуру
19.03.18
22:07
(31)Да, муторно. Но все равно проще, чем каждый раз картинки по местам расставлять.
Если есть другое решение, буду рад услышать и воспользоваться :-)