Имя: Пароль:
1C
1С v8
Автоматическое обновление конфигураци в 1С:Розница
,
0 Sk0rp
 
14.02.12
13:05
1С:Розница8 v1. Типовая.
Распределенная база. Процедура автоматического обновления конфигурации при получении изменений.
Грубо говоря заключается в том, что из константы при получении новой конфиги берется текст bat файла и запускается на выполнения.

Есть 2 варианта:
1. Можно воспользоваться типовым hardcoded скриптом, который не работает. Вообще не работает! Ни при каком условии. А если бы работал, то использовать его было бы нельзя.
2. Написать полностью свой bat файл, но уже в него невозможно передать путь к базе. Поэтому приходится плясать на пупке, что бы этот путь получить. Сложно, но возможно.

НО! Какой бы путь не был выбран, все равно придется вручную настраивать это в каждой удаленной базе, потому, что настройка из каких-то соображений с обменами не передается.

Но и это еще не все! Текст bat файла на диск пишется вот так:
ТекстовайДокумент.Записать(ИмяБАТФайла, КодировкаТекста.OEM);
Вот какого, спрашивается, хрена его перекодировать? При записи все русские буквы напрочь портятся. Приходится изначально писать в константу кракозябры, которые при перекодировке дадут правильный текст.

Программист из фирмы 1С, если ты это читаешь, пожалуйста, пробуй хотя бы запускать свое творчество перед тем как позориться.

P/S/
Для тех любит кричать: "У меня все работает!", - вы именно в Рознице проверяли?
1 PR
 
14.02.12
13:09
А ты нафига сюда это написал? :))
Крик души?
Или надеяшься, что программисты из 1С читают форум и примут меры?
2 Sk0rp
 
14.02.12
13:10
(1) И то и другое! =)))
3 Sk0rp
 
14.02.12
13:11
+(2) С кодировкой вообще засада. Может кому поможет когда гуглить будет и наткнется.
4 pumbaEO
 
14.02.12
13:12
Не пойму, почему с кодировкой засада, если bat выполняются в 866 кодировке...
5 andrewks
 
14.02.12
13:14
(4) bat может выполняться в разной кодировке. на то chcp и придумали
6 Sk0rp
 
14.02.12
13:16
(4) Потому, что когда через редактор 1С вставляешь текст скрипта, и в нем будет записано:
/CЗвершитьРаботуПользователей
то в bat файле окажется:
/C?ртхЁ°шЄ№?рсюЄє?юы№чютрЄхыхщ
7 Sk0rp
 
14.02.12
13:20
(5) Не помогает, мне надо, что бы bat файл скопировал часть себя в wsh скрипт. И там уже гарантировано порченная кодировка оказывается.
8 pumbaEO
 
14.02.12
13:32
(5) но по умолчанию...
Если знаешь подскажи: есть js скрипт, выполняю команды через
WshScriptExec=WshShell.Exec("cmd.exe /K /C");
WshScriptExec.StdIn.WriteLine("chcp 1251 > null");
WshScriptExec.StdIn.WriteLine('cd "' +лКаталог +'"');

тут все нормально.
Но потом читаю данные из потока, но вот со чтением в правильной кодировке засада, может знаешь как прочитать обратно, что бы UTF был?
9 pumbaEO
 
14.02.12
13:35
Зачем bat -ом писать часть wsh скрипта, если можно wsh записать из 1С, а из bat вызывать...
А или это просто крик души.
10 Чайник Рассела
 
14.02.12
13:36
(0) у меня все работает. 50 магазинов обновляются автоматически. ЧЯДНТ?
11 Sk0rp
 
14.02.12
14:09
(8) Насколько я понимаю, надо поток из StdOut перекодировать в то, что нужно.
(9) Без доработки 1С-ного кода нельзя. Снимать этот модуль с поддержки тоже крайне нежелательно.
(10) У меня тоже будет работать. Вопрос в том, что типовой код сделан максимально неудобно для пользователя.
12 pumbaEO
 
14.02.12
14:18
(11) я тоже понимаю что StdOut перекодировать надо только вот из какой кодировки в какую непонятно.
13 MikleV
 
14.02.12
14:30
(2) не поверишь)
(0) напиши лучше
14 MikleV
 
14.02.12
14:30
(2) к (1)
15 Sk0rp
 
14.02.12
14:48
(13) Конечно напишу. Хуже то некуда.
16 MikleV
 
14.02.12
14:57
(15)бугага