Системы контроля версии и 1С




Принцип обмена данными из 1С с сайтом (на MySQL) и выдачи (публикации) этих данных по запросу.
PHP-Скрипт автоматической загрузки данных из файла данных в формате CSV в базу данных сайта работающего на WordPress.

В продолжение моей темы: 1С:Альфа-Авто Автосалон Автосервис: обмен с сайтом.
С помощью данного скрипта можно загружать в автоматическом режиме, по расписанию, данные сервисных книжек (ремонтов авто) из 1С:Альфа-Авто Автосалон Автосервис.
Также можно загружать данные в ручном режиме: для этого делается скрытая страница, где размещается специальная кнопка.
Комментарии размещенные внутри скрипта разъяснят логику и порядок действия.
Комментарии с "/////    echo" использовались для отладки.
Дополнительно создана таблица для журналирования результатов загрузки данных.
Скрипт включает в себя защиту от SQL инъекций (думаю безопасность соблюдена в полной мере).
В кратце:
1. Пишется скрипт, который запускает этот.
2. Создается регламентное задание в WordPress, по которому запускается скрипт из п.1. 
3. Этот скрипт осуществляет проверку на существование файла обмена в папке.
4. Если данные не новые, загрузка не производится.
5. Если данные новые, очищается таблица сервисных книжек.
6. Загружаются новые данные.

Собственно сам скрипт:

<?php // Полная загрузка сервисных книжек, создан 2024-01-05 12:44:55

global $wpdb2;
global $failure;
global $file_hist;

/////  echo '<H2><b>Старт загрузки</b></H2><br>';

$failure=FALSE;
//подключаемся к базе
$wpdb2 = include_once 'connection.php'; ; // подключаемся к MySQL
// если не удалось подключиться, и нужно оборвать PHP с сообщением об этой ошибке
if (!empty($wpdb2->error))
{
/////   echo '<H2><b>Ошибка подключения к БД, завершение.</b></H2><br>';
$failure=TRUE;
wp_die( $wpdb2->error );
}

$m_size_file=0;
$m_mtime_file=0;
$m_comment='';
/////проверка существования файлов выгрузки из 1С
////файл выгрузки сервисных книжек
$file_hist = ABSPATH.'/_1c_alfa_exchange/AA_hist.csv';
if (!file_exists($file_hist))
{
/////   echo '<H2><b>Файл обмена с сервисными книжками не существует.</b></H2><br>';
$m_comment='Файл обмена с сервисными книжками не существует';
$failure=TRUE;
}

/////инициируем таблицу лога
/////если не существует файла то возврат и ничего не делаем
if ($failure){
///включает защиту от SQL инъекций и данные можно передавать как есть, например: $_GET['foo']
/////   echo '<H2><b>Попытка вставить запись в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>$m_comment));
wp_die();
/////    echo '<H2><b>Возврат в начало.</b></H2><br>';
return $failure;
}
/////проверка лога загрузки, что бы не загружать тоже самое
$masiv_data_file=stat($file_hist);   ////передаем в массив свойство файла
$m_size_file=$masiv_data_file[7];    ////получаем размер файла
$m_mtime_file=$masiv_data_file[9];   ////получаем дату модификации файла
////создаем запрос на получение последней удачной загрузки
////выбираем по штампу времени создания (редактирования) файла загрузки AA_hist.csv, $m_mtime_file

/////   echo '<H2><b>Размер файла: '.$m_size_file.'</b></H2><br>';
/////   echo '<H2><b>Штамп времени файла: '.$m_mtime_file.'</b></H2><br>';
/////   echo '<H2><b>Формирование запроса на выборку из лога</b></H2><br>';
////препарируем запрос
$text_zaprosa=$wpdb2->prepare("SELECT * FROM `vin_logs` WHERE `last_mtime_upload` = %s", $m_mtime_file);
$results=$wpdb2->get_results($text_zaprosa);

if ($results)
{   foreach ( $results as $r)
{
////если штамп времени и размер файла совпадают, возврат
if (($r->last_mtime_upload==$m_mtime_file) && ($r->last_size_upload==$m_size_file))
{////echo '<H2><b>Возврат в начало, т.к. найдена запись в логе.</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>$m_mtime_file,'last_size_upload'=>$m_size_file,'comment'=>'Загрузка отменена, новых данных нет, т.к. найдена запись в логе.'));
wp_die();
return $failure;
}
}
}
////если данные новые, пишем в лог запись о начале загрузки
/////echo '<H2><b>Попытка вставить запись о начале загрузки в лог таблицу</b></H2><br>';
$insert_fail_zapros=$wpdb2->insert('vin_logs', array('time_stamp'=>time(),'last_mtime_upload'=>0, 'last_size_upload'=>$m_size_file, 'comment'=>'Начало загрузки'));

////очищаем таблицу
$clear_tbl_zap=$wpdb2->prepare("TRUNCATE TABLE %s", 'vin_history');
$clear_tbl_zap_repl=str_replace("'","`",$clear_tbl_zap);
$results=$wpdb2->query($clear_tbl_zap_repl);
/////   echo '<H2><b>Очистка таблицы сервисных книжек</b></H2><br>';
if (empty($results))
{
/////   echo '<H2><b>Ошибка очистки таблицы книжек, завершение.</b></H2><br>';
//// если очистка не удалась, возврат
$failure=TRUE;
wp_die();
return $failure;
}

////загружаем данные
$table='vin_history';         // Имя таблицы для импорта
//$file_hist Имя CSV файла, откуда берется информация     // (путь от корня web-сервера)
$delim=';';          // Разделитель полей в CSV файле
$enclosed='"';      // Кавычки для содержимого полей
$escaped='\

55 Comments

  1. pumbaE

    Системы контроля версий на службе у 1С-ника.

    Перейти к публикации

    Reply
  2. orefkov

    Правильно ли я понял, что сами файлы уходят в систему контроля версий как бинарники, просто добавлена возможность просмотреть разницу «по-человечьи»?

    Reply
  3. pumbaE

    (1) orefkov, совершенно верно. Даже при таком простом подходе вероятность порчи внешних обработок (случайно кэш почистили) уменьшается в разы.

    Видна простейшая история изменений. Та даже просто когда есть несколько веток разработки уже красиво становиться.

    Я раньше использовал в bzr хук при commit автоматом запускало v8unpack и для модулей всегда можно было посмотреть различия, но обезличено.

    Reply
  4. pumbaE

    Автор v8Reader подсказал, что есть досадная ошибка при построении дерева измененных…

    Открываю общедоступный репозиторий, где буду выкладывать изменения: https://bitbucket.org/Shenja/diff1c

    Reply
  5. Steelvan

    Да, если просто хранить внешние обработки в конфигурации, то у реквизитов формы слетают типы. Поэтому приходиться придумывать типа сабжа.

    Reply
  6. andy_minsk

    А для себя, если не секрет, что используешь? Мы на Bazaar пробуем, просто он не совсем «модный», интересен опыт других.

    Reply
  7. orefkov

    Я вот пользую mercurial и для небольших проектов — fossil.

    Reply
  8. pumbaE

    (5) andy_minsk, Раньше использовал svn, но это остатки прежних заказов. На машине стоит в принципе зоопарк: svn, git, hg, bzr, вот еще благодаря снегопату fossil осилил:

    Кратко сейчас использую две системы fossil и bzr: bzr последний который 2.5 beta, там добавили работу с ветками как в git. Fossil использую на выездах (удобно со снегопатом сочетается, в принципе я дорабатываю плагин для снегопата — работа с версионным контролем), пришел к клиенту сделал fossil open, если дорабатывал какие либо отчеты внешние, закоммител и уже дома сделал синхронизацию (для каждого клиента своя ветка) — так же есть скрипт самопальный, который делает экспорт из fossil ревизий в bzr.

    Причины использования bzr, fossil, svn а не git и hg: нормальная работа с кирилицей в именах файлов. Если есть XP, 7 и linux — тогда только bzr, fossil или svn. Если только win7 (vista) и linux тогда можно и hg или git.

    Мы на Bazaar пробуем, просто он не совсем «модный»

    но только он из модных с красивым GUI поддерживает в хранилище у себя unicode названия файлов.

    Reply
  9. pumbaE

    (6) orefkov, я бы тоже использовал с удовольствием mercurial, но так как на работе XP, дома linux, на сервере redmine (тоже linux), а английский я хорошо не знаю, да и 1С предлагает все таки русские наименования обработок… пришлось искать альтернативы.

    Reply
  10. orefkov

    Ну у меня mercurial в С++ проектах используется, и что он кириллицу в именах файлов не поддерживает, я даже как-то впервые услышал.

    Reply
  11. pumbaE

    Он поддерживает, только к себе в хранилище сохраняет имена в системной кодировке (в xp cp1251), когда на другие системы разворачиваешь, естественно перекодирует (utf-8) и получается, Файл МояОбработка удален, файл МояОбработка добавлен. Аналогично и git.

    Reply
  12. andy_minsk
    Причины использования bzr, fossil, svn а не git и hg: нормальная работа с кирилицей в именах файлов. Если есть XP, 7 и linux — тогда только bzr, fossil или svn. Если только win7 (vista) и linux тогда можно и hg или git.

    Да, поскольку линукс, 7 и ХР, победили кодировки только в bzr, и сами пришли к этой мысли :).

    А насколько интенсивно пользуете, примерное количество веток, ревизий?

    Reply
  13. pumbaE

    (11) trunk, dev, production

    Из production — в базу, в trunk основная разработка, dev быстрые, срочные правки.

    trunk по желанию разбивается на bug123, новаяФича и т.д.. Мелкие ветки в основном задаю, когда с консолью играюсь и СКД-шные макеты надо сохранить, а то сейчас вот как добавлю еще один подзапрос и посмотрю…

    Для cf около 80 commit, в целом если брать production около 200 (254 посмотрел) сейчас. Ну а ветки кто ж их считает…, коли их просто удалять. Сказать, что суппер быстро работает, не скажу — но зато у меня есть возможность в отличии от хранилища 1С накидать 10 commit и потом сделать merge c основной веткой и главное красиво все будет видно в истории.

    Reply
  14. pumbaE

    (13) поправлю обязательно.

    (14) я если честно, с трудом пишу публикации, советом, примерами могу помочь. Постараюсь написать, но не гарантирую, я эту статью 4 раза переписывал (в такие дебри уходил).

    Reply
  15. kuntashov

    (12) Тоже очень интересуюсь организации альтернативы хранилищу. Вопросы:

    1. Как организовано хранение cf-файлов? Также, как и обработок? Выгружаете cf и коммитите целиком как бинарник?

    2. Если да, то насколько быстро выполняется коммит? Если нет, как организовано версионирование изменений в cf?

    Reply
  16. pumbaE

    (16) kuntashov, cf также как и обработок, commit длиться около 30 секунд(субъективно, завтра замеряю более точно, но хочу сразу уточнить использую bzr, а про него вроде как говорят не сильно скоростной, но по очучениям 🙂 быстрее хранилища).

    Были попытки командной строкой выгружать модули объектов и потом скриптом Документ.АвансовыйОтчет.МодульОбъекта.txt разбивался в папку ДокументАвансовыйОтчетМодульОбъекта.txt, но к сожалению этой информации не хватало для дальнейшего анализа, нет не реквизитов, ни форм.

    Есть большое желание сделать выгрузку как у gcomp — хотя бы для выгружать структуру форм и модулей по папкам, опять на основании v8Reader, он то дерево строит. (В хранилище ложить cf и дерево файлов, без cf страшно)

    OFF:

    Так же планирую в посмотреть в сторону bugzila — нравиться мне как у fedora сделана зависимость между пакетами и их версиями. Это просто как идея витает: есть внешняя обработка допустим заполнить табличную часть док Авансового учета — для версии документа «Авансовый Отчет», в случаи изменения ревизии для объекта(пакет) Авансовый отчет, автоматом информировать проверить такую ревизию такого файла… Ну или пытаться вникнуть в юнит-тестирование…

    Reply
  17. kuntashov

    (17) Спасибо. Не уточнишь, о конфигурации какого размера идет речь?

    Скорость для меня очень важна, иначе теряются многие преимущества, которые я ожидаю получить.

    Если ограничиваться текстовым представлением, то можно вместе с выгружаемыми модулями коммитить отчет по конфигурации. Теоретически, должно быть быстрее на последующих операциях сравнения. Но тут опять узким местом может стать выгрузка модулей и формирование этого отчета…

    Reply
  18. pumbaE

    (18) kuntashov, УПП-ыще. Формирование отчета и выгрузка модулей действительно узкое место, в принципе для анализа модулей может попробовать v8unpack запускать (хотя бы тексты модулей). Отчет по конфигурации имеет такое свойство: строиться табличный документ, только он всеми системами определяется как binary, кажется выгружает utf-8 только без BOM, сейчас точно уже не вспомню, последний раз так делал летом. Кстати по ощущениям (опять таки на глаз), fossil дольше commit делает, хотя может и вправду статусная строка движущаяся на ощущения влияет, у bzr есть, у fossil нет.

    Reply
  19. kuntashov

    (19) Я имел в виду отчет по конфигурации в текстовом (TXT) виде (Меню «Конфигурация» — пункт «Отчет по конфигурации», в диалоге переключатель в позиции «Текстовый документ»).

    Reply
  20. pumbaE

    (20) kuntashov, да, да. После формирования, надо выбирать Сокранить как, выбрать любую кодировку, потом обратно utf-8 тогда будет правильный utf-8 файл сохранять.

    Reply
  21. tormozit

    8.2.16 вроде как обещает предоставить больше возможностей по детальной выгрузке метаданных. Но насколько она будет детальной пока непонятно.

    Reply
  22. pumbaE

    (22) tormozit, только на это и надежда (только вот как быстро это будет …). В принципе в плане сравнения и объединения в 1С не хватает 3-х уровнего merge. Уже подумывал скрипт может написать взять cf base создать поставку — создать базу — объединить с this — создать обновление для other и потом показать окно конфигурации с обновлением. (Сейчас в комментариях приходиться прописывать объекты измененные

    *ОбщиеМодули.ОбщегоНазначения

    *Документ.АванасовыйОтчет

    что бы видеть что же поменялось по сравнению с базовой).

    Reply
  23. IamAlexy

    беда всех этих «контроллеров версий» в том что слишком много накладных расходов по установке, настройке и поддержке данных систем..

    всмысле, для тупого 1Сника это все черезчур сложно и геморно..

    проще поставить себе БСП, и заюзать ее подсистему хранения файлов… где есть версии, описания версий и тд..

    вот и получается у вас база с наработками и версионированиеам.. а так же с поиском, общей архивацией и тд и тп..

    Reply
  24. pumbaE

    (24) IamAlexy, беда в лени, а не в установке. Даже возьми ту же БСП — это же надо хотя бы раз в день сохранить версию и че то написать поморщивши лоб.

    Тупому 1Снику это не предназначено…

    Мне допустим нравиться пользоваться ветками (в понимании версионных систем), причем особенно нравиться для макетов СКД, когда не знаешь куда кривая тебя приведет.

    (пример не показательный но картинка может заинтересует).

    Reply
  25. bsi

    (25) да для 77 красиво смотрится — душа радуется. а для 82 покажи пример

    Reply
  26. iceflash

    Да, версионирование кода 1С, это просто такой… недостаток, стандартное хранилище тоже не устраивает, решил в очередной раз попробовать ваш вариант, попробую на git=)

    Reply
  27. kuntashov

    (24), (25) Согласен с мнением IamAlexy. Для меня тоже основная проблема — сложность совместного использования такой системы в команде со «среднестатистическим 1Сником». Конечно же, эффект от использования в одиночку тоже есть, но это совсем не то, что ожидаешь от систем коллективной разработки.

    В одиночку навязать команде не типовую технологию, которую надо изучать, которая в нашей отрасли (разработка на 1С) не является стандартом, очень тяжело. Особенно, где много не-технарей, или специалистов, не знакомых с разработкой ПО вне конфигуратора.

    Все усугубляется еще и тем, что 1С:Предприятие 8 не очень располагает к использованию таких инструментов из-за отсутствия представить конфигурацию полностью в текстовом виде. А с бинарниками работать зачастую специфично.

    Но альтернативная система контроля версий нужна однозначно. Или не альтернативная, а улучшенная существующая:

    * с быстрыми коммитами в больших конфигурациях с большим числом объектов;

    * быстрая на операциях сравнения объектов разных версий «здесь и сейчас» (сценарии «Покажи мне, что я изменил после предыдущего коммита» и «Покажи, что изменилось в этой версии относительно вот этой версии»);

    * с возможностью создавать ветки;

    * с возможностью немонопольного захвата объектов

    Reply
  28. pumbaE

    (29) kuntashov, основной посыл данной публикации, использовать для внешних отчетов и обработок альтернативные системы контроля версий. Сегодня в типовых много приходиться добавлять внешних отчетов, обработок заполнения ТЧ, печатных форм… Хранилище для этого использовать — как из пушки по воробьям.

    Работа с системами контроля версий для простейших случаев, согласитесь не сложнее работы с хранилищем «commit» и в африке «commit». Установка DVCS сегодня уже проще простого, в примере описания bzr (неудачный пример, скоро дополню инструкцией для hg и git, там же все значительно проще).

    Помечтаем:

    Компоновщик 1С: натравил на папку с исходниками, собрал cf. Натравил на cf — создал дерево исходников. (узкое место оказывается сборка, компиляция рабочей конфигурации. Но, если мечты понесут еще дальше: берем пакетные менеджеры — 1 документ, справочник = 1 пакет. Есть зависимости: док 1 зависит от Справочника 2, есть мета-пакет Подсистема 22)

    Режим разработчика в конфигураторе: у этого объекта изменить uuid — прозрачно прошла реструктуризация базы данных.

    Закончили мечтать.

    * с быстрыми коммитами в больших конфигурациях с большим числом объектов;

    Или должна 1С сделать или возможно только, если дерево конфигурации будет представлено в файлов варианте и редактировать будем отдельные файлы (системы контроля версий для быстрого определения изменения смотрят на время изменения файла, если каждый раз перезаписывать все дерево, тогда sha1 для каждого файла — не будет быстрого коммита.

    * быстрая на операциях сравнения объектов разных версий «здесь и сейчас» (сценарии «Покажи мне, что я изменил после предыдущего коммита» и «Покажи, что изменилось в этой версии относительно вот этой версии»);

    Если предыдущий пункт выполниться, тогда это возможно и это было бы прекрасно.

    * с возможностью создавать ветки;

    * с возможностью немонопольного захвата объектов

    Ветки и непомопольный захват объектов: путь к 3-х уровневому сравнению… (и это печально, потому как вероятность, что 1С это сделает крайне низка, хотя может какой либо американский (канадский) блогер-прогер, блогер-аналитик заплюет 1С за это и они сделают…).

    Хотелось бы посоветовать, тем кто в принципе ничем не пользуется: Используйте хоть, что-то.

    Reply
  29. kuntashov

    (30) Если что, оговорюсь, что я посыл стати прекрасно понял и сообщение написал в порядке дискуссии.

    Названные технические проблемы моих «пожеланий» тоже прекрасно понимаю.

    Пока же остается ждать 8.2.16 и эксперементировать с существующими возможностями.

    Reply
  30. pumbaE

    Между делом: Какое же хранилище тяжелое… в плане помещения объектов и извлечения. Bzr делает commit .cf макс за 20 секунд, fossil при той же модели до минуты. Выгрузка практически сразу. По размерам хранилища fossil сжимает, bzr хранит полностью файл, соответственно в размере хранилища bzr проигрывает хранилищу конфигурации процентов на 30% (больше у bzr). Fossil выигрывает размер хранилища самый маленький.

    Как вариант может делать на основании v8Reader отчет и дерево файлов (cf так и так будет ложиться), но при этом можно будет видеть сразу изменения и для

    * быстрая на операциях сравнения объектов разных версий «здесь и сейчас» (сценарии «Покажи мне, что я изменил после предыдущего коммита» и «Покажи, что изменилось в этой версии относительно вот этой версии»);

    , единственная большая проблема это 3-х уровневое сравнение (при слиянии веток).

    Reply
  31. рибак

    Я тоже пользую mercurial, но публикация нормаль

    Reply
  32. YakshinAnd

    Очень сложно. Те кто незнакомы со сторонними программами, те может и будут использовать. Те кто работал в svn и mercurial тот этим способом не будет пользоваться.

    Reply
  33. kabanoff

    Отличная вещь, спасибо!

    При сравнении отчетов выдает ошибку, т.к. неправильно настроено соответствие видов файлов.

    Правильно будет сделать так:

    СоответствиеВидовФайлов = Новый Соответствие;
    СоответствиеВидовФайлов.Вставить(«cf», 0);
    СоответствиеВидовФайлов.Вставить(«cfu», 2);
    СоответствиеВидовФайлов.Вставить(«epf», 1);
    СоответствиеВидовФайлов.Вставить(«erf», 3);
    СоответствиеВидовФайлов.Вставить(«mxl», 100);
    Reply
  34. pumbaE

    (36) kabanoff, спасибо. По иронии судьбы ради версионного контроля внешних отчетов я начал разбираться с системами DVCS и как их к 1С прикрутить…

    Ошибку исправил: Ссылка на последние изменения

    Reply
  35. Zas1402
    Правильно ли я понял, что сами файлы уходят в систему контроля версий как бинарники, просто добавлена возможность просмотреть разницу «по-человечьи»?

    Правильно

    Reply
  36. iceflash

    Может кто подсказать с настройкой под git, что то совсем не выходит=(

    Reply
  37. pumbaE

    (39) iceflash, советую использовать TortoiseGit. При использовании Tortoise(SVN, GIT, HG) настройка для сравнения делается аналогично как и для TortoiseSVN.

    Вот пример: Видео настройка git

    Reply
  38. iceflash

    (40) Благодарю=) попробую, просто со стандартным Git + Git extension настраивать замучался, вот с черепахой попробую, даже не знал что есть она для гита=)

    Reply
  39. iceflash

    (40) «Вообще Огонь!» Огромное спасибо!

    Reply
  40. pumbaE

    (42) iceflash, заслуга больше V8Reader (с расширенным анализом форм) , только благодаря этой разработке можно было, что либо сделать.

    Reply
  41. iceflash

    (43) Это да, согласен, но в любом случае спасибо за наводку и помощь=)

    Reply
  42. iceflash

    Кстати по вопросу с кириллицой, это проблема TortoiseGIT или самого GIT? до сих пор не могу понять, как так существуют такие проблемы, используйте UTF и все должно быть хорошо.

    Так вот по самому вопросу, планируется ли исправление, pumbaE, не в курсе?

    Reply
  43. pumbaE

    (45) iceflash, это проблема именно git и mercurial, имена файлов или латиницей или же в UTF, но именно в XP кодировка консоли cp1251 (а файловая система в unicode) — в результате, получаются проблемы с кодировками: для git есть сборки UTF-8 http://code.google.com/p/utf8-git-on-windows/ (у японцев тоже проблемы с наименованиями файлов). Как вариант ставить git c поддержкой c cygwin, но тогда лишаемся красивой оболочки в виде tortoise. В дополнение можно поставить http://code.google.com/p/gitextensions/ (но у меня все равно не получилось завести).

    И да проблема будет с кодировками только если будут использоваться и XP и (Win 7 или linux (тот же github или сервер на linux)).

    Я пока остановился на svn, bzr и fossil.

    Так вот по самому вопросу, планируется ли исправление, pumbaE, не в курсе?

    Не будет, как считают разработчики: это не ошибка, а фича :).

    Если нет файлов с русскими наименованиями или же нет необходимости синхронизации с другими компьютерами то можно смело использовать git.

    Reply
  44. comol

    (30) Вообщем альтернативное хранилище конфигураций нужно :(…. Похоже ты единственный кто более-менее приблизился к решению проблемы… собственно нужно по сути научиться извлекать файлы конфигурации и отправлять их в систему контроля версий… Герман уже вроде этой затеей развлекался, но до коллективной разработки в iE у него ещё далеко, и особо пока в другом направлении работает… может спросить и поделится подходом, тогда можно будет попробовать скрипт для снегопата написать…

    Reply
  45. Voyager

    Огромный плюсище!

    Просьба для автора: дополнить скрипт diff-1c-cf.js чисткой файлов после себя, а также обратить внимание на то что файлы в папке Temp могут быть с атрибутом «только для чтения» и тогда при вызове метода CopyFile возникает ошибка

    Reply
  46. Chrizt

    Окей, отчёт по изменениям у нас есть и вполне удобоваримый. А как быть, если необходимо вернуться к какой-то версии?

    Reply
  47. pumbaE

    (49) Chrizt, ни что не мешает сделать «сохранить версию файла»

    Reply
  48. Chrizt

    (50) так. А как же патчер?

    Reply
  49. pumbaE

    (51) Chrizt, не понял. Расшифруйте плиз.

    Reply
  50. Chrizt

    (52) патч накатить нельзя, ибо это не код. Всегда оперируем только цельным файлом обработки 🙁

    Reply
  51. pumbaE

    (53) Chrizt, да, патчи не наложишь. Но и патчи можно в реальности наложить только на текст, не на формы, не на макеты. Для конфигураций уже можно пробовать, а для внешних обработок пока к сожалению нет. Появиться в 8.3 возможность выгружать внешние обработки и обратно загружать, тогда будет возможность патчи накладывать.

    Reply
  52. Chrizt

    (54)

    Появиться в 8.3 возможность выгружать внешние обработки и обратно загружать

    А можете подробнее, что имеется в виду под этой фразой?

    Вроде и так же выгружаются и загружаются обработки.

    Reply
  53. pumbaE

    (55) Chrizt, 8.3 позволяет выгружать полностью конфигурацию, но отдельно внешний файл (обработка, отчет) невозможно. Получается полноценно использовать git для конфигураций можно, а для внешних обработок пока только в бинарном виде и хранить.

    Reply
  54. Chrizt

    (56) а, в этом плане… Да уж, 1С в этом плане — довольно убогая прикладная фигня.

    Давно бы уже всё стало проще, если бы исходники модулей и схемы UI были бы текстовыми файлами, хотя бы даже упакованными в зипчик какой-нибудь подписанный или типа того.

    Все нормальные ЯП — это сорцы в чистом виде, а с 1С нужно быть магом, чтобы считать его хоть сколько-нибудь ЯП.

    Хотя, Википедия говорит, что есть альтернативы 🙂

    Reply
  55. djolejek





    Вылетает вот такая ошибка при попытки сравнения в bazaar. кто-нибудь знает как это можно полечить?

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *