Забавные лицензионные соглашения.




Принцип обмена данными из 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='\

40 Comments

  1. BigB

    Спасибо. Пошел декомпилировать 1С 🙂

    Reply
  2. support

    Рекомендую выделить цитаты из ГК РФ и авторский текст.

    Reply
  3. Трактор

    Недочитал, но одобряю. Дочитаю потом.

    Reply
  4. awk

    (2) Спасибо, учту. Пока так. В openoffice выглядело нормально…

    Reply
  5. German

    Много хороших статей

    Так если по существу, модифицурая СУБД не средствами 1С мы нарушаем лицензионное соглашение? 😎

    Reply
  6. awk

    (5) Нет. Этот пункт недействителен:

    2. Условия лицензионного договора, ограничивающие использование результата интеллектуальной деятельности в составе сложного объекта, недействительны.

    Нельзя нарушить не действующие пункты.

    Reply
  7. karetir

    читаем часть ст1.

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

    Лицензионный договор на программы 1с 8 например 1С Бухгалтерию 8 предоставляет право ее использовать и НЕ предоставляет право ее изменять кроме незначительных изменений в оговоренных законом случаев. Соответственно использование всяких других самодеятельных конфигураций для пользователя будет НЕЗАКОННЫМ.

    Соответственно почти все созданное на инфостарте незаконно.

    Reply
  8. awk

    (7) Не совсем так. Точнее не так совсем. Если я беру конфигурацию БП 8. И добавляя (урезая) её функционал продаю, это плагиат (нарушаю исключительные права). Если я беру конфигуратор 1С (у меня лицензионный версия для разработки) и пишу код от и до. То автором его являюсь я — дальше ст. 1228. Дальше п. 3 ст. 1240. Если я распространяю, то не продукт 1С, а результат своего труда, которому для работы требуется 1С:Предприятие. Если я не распространяю результат труда 1С, то исключительных прав на него эта компания не имеет (я ей их не предоставлял). Пользователь имеет право пользоваться результатами моего труда в рамках моего лицензионного соглашения. А оно содержит информацию о продукте, то есть информацию о том, что пользователь отдельно должен заключить договор с 1С, для использования или разработать свой метод выполнения моих программ. Если вы имеете информацию о плагиате в постах, то обязаны заявить об этом администрации сайта и контролирующим органам. В противном случае вы либо клевещете, что подподает под уголовный кодекс Российской Федерации, либо скрываете информацию о преступлении, или бездействием пособничаете преступлению, что то же наказуемо. Если где-то допустил ошибку прошу поправить, но по-моему все логично.

    Reply
  9. support

    (7) так как программа для ЭВМ приравнена к литературному произведению, по-вашему получается, что я статью не могу распространять написанную в формате MS WORD.

    Reply
  10. Арчибальд

    (7) Ключевым является определение из ст. 1261 ГК РФ:

    Программой для ЭВМ является представленная в объективной форме совокупность данных и команд, предназначенных для функционирования ЭВМ и других компьютерных устройств в целях получения определенного результата, включая подготовительные материалы, полученные в ходе разработки программы для ЭВМ, и порождаемые ею аудиовизуальные отображения.

    Вот этот самый определенный результат (для получения которого предназначена программа) принадлежит «исполнителю», правомерно использующему экземпляр программы. Если я правомерно пользуюсь конфигуратором, то все, что мне он выдаст — мое. Будь это внешний отчет, конфигурация «с нуля» или методика «надстройки» типовой конфигурации. Вот сама надстроенная типовая конфа — это не мое, так что продавать ее я могу только по согласованию с автором типовой.

    Кстати, изменение типовой конфы в личных целях как правило, не требует согласования с автором, поскольку обычно укладывается в рамки

    «внести в программу для ЭВМ или базу данных изменения исключительно в целях их функционирования на технических средствах пользователя и осуществлять действия, необходимые для функционирования таких программы или базы данных в соответствии с их назначением«

    Reply
  11. СергейКа

    (10) Однако приведена фраза не полным куском «, если иное не предусмотрено договором с правообладателем»

    Т.е., вносить изменения можно, если при покупке не будет прямо написано что нельзя 😉

    Reply
  12. Арчибальд

    (11) Это само собой 😎 Я и пишу «как правило», «обычно». Но не всегда 🙁

    Reply
  13. karetir

    (8-11) Вы исходите из ложных посылок поэтому получаете ложные результаты.

    Программные компиляторы и офисные программы ПРЕДНАЗНАЧЕНЫ для выработки решений имеющих электронное представление — программы, тексты и т.д. Программные продукты от 1с серии 8 (о 7.7 говорить не приходится там вообще лицензионное право игнорируется) содержат ЭКОНОМИЧЕСКУЮ ПРОГРАММУ и БАЗУ ДАННЫХ и встроенное средство их корректировки — как единое целое. ЕДИНОЕ! Нет отдельной лицензии на средство разработки.

    Поэтому пользователь имеющий такую лицензию НЕ ИМЕЕТ ПРАВО выходить за ее пределы то есть создавать с целью эксплуатации или иметь то, что НЕ БУДЕТ соответствовать лицензионному соглашению — например вместо 1с бухгалтерии проф 8 эксплуатировать склад Пупкина причем все равно создал он его сам или купил у кого то.

    Поясню на примере. Предположим MS WORD продавался бы как «Библия на MS WORD» тогда пользователь мог бы читать и редактировать или вставлять комментарии в этот продукт. Но создать на нем КОРАН на MSWORD» он не имел бы право. Даже отдельные тесты писем созданные с помощью такой программы были бы незаконны.

    Именно такая ситуация с программами 1С 8. Все было бы иначе если бы продавалась отдельная ПЕРВАЯ лицензия на 1С предприятие 8 как средство разработки и/или рантайм. При этом могло бы еще делиться на конфигуратор и рантайм. Однако это как как раз не хочет 1С, чтобы сохранить свои сомнительные с точки зрения антимонопольного права преимущества по сравнению с независимыми производителями программ.

    можете посмотреть об этом в http://infostart.ru/public/63332/?PAGEN_1=1#comm339132

    Reply
  14. karetir

    собственно есть одно средство «обхода» этих 1с-ких псеводолицензионных ограничений. Можно купить версию для обучения программированию, создать на ней свою программу и продавать с купленной дополнительной лицензией на 1с8 (ключом) это будет почти законно. Почти законно потому что этот дополнительный ключ будет РАВНО НЕЗАКОНЕН как для типовых конфигураций так и для вашей самодельной.

    Reply
  15. karetir

    (13) есть еще явный пример по MS Aсcess — в ней шел раньше пример базы данных «Борей». Эта программа позволяла создавать свои базы и можно было купить (или что-то там бесплатно) предоставлялось — рантайм для исполнения своих баз данных. То есть можно было законно создавать и распространять свои программы. Теперь представим как эту конструкцию продавала бы 1с — «1С Борей для Ацесс 8». При этом продавались бы ключи для Ацесс 8 (которой отдельно не продавался бы!) А для чего все это? Что бы пользователю нельзя было с ней (Борей) законно равноправно конкурировать создав «СУПЕРБОРЕЙ».

    Reply
  16. awk
    Reply
  17. awk

    Голова с дырой ссылку на источник последней цитаты забыл… http://v8.1c.ru/predpriyatie/questions_licence.htm

    Reply
  18. karetir

    (16) Вам следовало бы прочитать дискуссию по теме

    http://infostart.ru/public/63332/?PAGEN_1=1#comm339132

    Reply
  19. karetir

    теперь кратко изложим результаты

    1. Никакого «инструмента» вы не приобретаете покупая 1с Бухгалтерию 8 (к примеру возьмем эту коробку). Прочтите внимательно лицензионное соглашение которое лежит в коробке — начнем с того на какую программу оно выдано — на 1С Предприятие 8 Бухгалтерия РФ.

    2. ЭТО Единый продукт для ведения бухгалтерского учета. Никакой лицензии на средство разработки здесь нет — то есть лицензии «инструмента» например «Конфигуратора для разработки Экономических программ» нет.

    3. Весь абзац («пользователь или обслуживающая его организация имеют право создавать на основе правомерно приобретенной конфигурации собственные прикладные решения и использовать их для ведения учета на собственном предприятии. Это не противоречит Лицензионному соглашению, так как в этом случае программный продукт используется в соответствии с документацией. Тиражирование и распространение такого прикладного решения регулируется не Лицензионным соглашением, а Законом «Об авторском праве и смежных правах».) — САМ НЕ СООТВЕТСТВУЕТ закону на который ссылается. Так как возможность использования продукта за пределами его функций указанных в лицензионном соглашении и разрешенным законом НЕ МОЖЕТ БЫТЬ УКАЗАНА В ТЕХДОКУМЕНТАЦИИ. Техдокументация не является лицензионным соглашением и не может расширять права свыше лицензионного соглашения и закона. Так что попытка 1с поставить свою техдокументацию выше закона смехотворна и юридически ничтожна.

    Reply
  20. karetir

    4. В отношении результата то есть разработок. Поскольку отдельного инструмента ни вы ни пользователи не приобретали то вы можете использовать свои разработки только как предмет своего самолюбования на собственном компьютере. Сторонний же пользователь не имеет права выходить за пределы своей лицензии и может только САМ незначительно модифицировать конфигурацию для устранения ошибок и обеспечения совместимости с имеющимся программным обеспечением.

    Reply
  21. karetir

    5. Таким образом основная ошибка подавляющего большинства 1с-цев состоит в том что они имеют законную лицензию на инструмент разработки программ — но такой лицензии они не имеют — прочтите лицензионное соглашение и закон.

    Техдокументация не ЯВЛЯЕТСЯ установленным законом юридическим документом для предоставления такой лицензии.

    Reply
  22. karetir

    6. Все же что говорится о системах «совместимо» , «совместно» и т.п — это только инструмент незаконной конкуренции с независимымыми разработчиками которые могли бы выпускать самостоятельные конфигурации и конкурировать с 1с как они должны заранее предоставлять свой код конкуренту на ознакомление.

    Reply
  23. karetir

    Ну а о том насколько законны действия 1с по отношению к партнерам и ее ценовая политика — можете провести анализ ее договоров и прочитав это

    http://www.rbc.ru/rbcfreenews.shtml?/…0831.shtml

    Reply
  24. karetir

    (16) так что подведем итоги. «Бредовой» является правовая конструкция запечатленная в мозгах 1С-цев. Им следовало бы изучить законодательство об авторском праве, а потом на основе этого и элементарной логики проанализировать всю псевдо-лицензионную текстовку от 1С на ее сайте.

    Замечу еще что все эти ее объяснения, разъяснения и т.п вообще никакой юридической силы не имеют так как не являются составной частью лицензионных соглашений.

    Reply
  25. karetir

    (23) ссылку поправлю

    http://www.fas.gov.ru/article/a_25923.shtml

    Reply
  26. awk

    (18) (19) (20) (21) (22) (23) (24) (25) (26) И причем тут производители антивирусов? При всей похожести системы распространения — это к делу не относится. Пока что франчазинг в России законен. А именно он предполагает использование торговой марки взамен на соблюдение ряда условий. В лицензии на 1С которая у меня в коробке дано в явном виде разрешение на использование продукта 1С:Предприятие. Ни о каких конфигурациях там и речи не идет. Точнее идет речь о том что такие есть и они охраняются законом об авторском праве, что на них нужна лицензия от их авторов. Есть ссылки на техническую документацию, что не допустимо, так как эта часть может быть изменена одной из сторон подписавшей договор, без ведома второй. То есть для законности она должна оформляться как приложение к договору и подписываться. То есть на мой взгляд лицензионное соглашение от 1С содержит три ошибки которые могут сделать данное соглашение недействительным. Но это может установить только арбитражный суд.

    Первая ошибка как упоминалось это ссылки на не подписанные обоими сторонами документы. Вторая это нарушение части второй статьи 1240 ГК РФ. Третье нарушение — это ограничение территории действия лицензии без указания адреса статья 1235 пункт три. Поскольку лицензионное соглашение у 1С типовое, то есть один и тот же текст лицензии идет для всех потребителей программного продукта 1С, то признание этого лицензионного соглашения недействительным хотя бы с одной из сторон, приведет к следующему:

    1. Все сделки произведенные с заключением данных соглашений станут недействительными.

    2. В связи с пунктом 1 программное обеспечение не сможет использоваться до заключения нового соглашения, а деньги за продукт подлежат возврату. Так же подлежит возврату убыток причерченный фирмой 1С, в результате продажи товара с заведомо противоречащими законодательству РФ лицензионными соглашениями (12.. статья не помню).

    Однако, пока таково решения не вынесено. Значит авторы разработок, при условии нахождения у них на законных основаниях продуктов 1С и т.д., не нарушают законодательство Российской Федерации. И к ним применяется закон об авторском праве. То есть их разработки принадлежат им.

    P.S. Я не люблю фирмы 1С и Microsoft, но я отдаю должное их продуктам. Ибо являясь разработчикам который владеет не только языком от 1С, но и другими, прекрасно представляю себе тот труд который нужен, что бы создать хотя бы отдаленно приближённые но по качеству и функционалу продукты. Я так же утверждаю, что субъективно, что обе эти фирмы используют приёмы недобросовестной конкуренции. Часто не адекватно преувеличивая качество и надежность своих продуктов. Но мотивы такова поведения вполне ясны. И соврет тот кто скажет,что не хочет быть миллионером.

    Reply
  27. karetir

    (27) насчет франчайзинга — и где же написано что такие договора отличаются от прочих с точки зрения конкуренции.

    «В лицензии на 1С которая у меня в коробке дано в явном виде разрешение на использование продукта 1С:Предприятие. Ни о каких конфигурациях там и речи не идет. » — не могли бы Вы сказать в какой именно коробке лежит такое лиц.соглашение и текст его привести. Мне не приходилось пока такого встречать.

    Reply
  28. awk

    (28) 1С:Предприятие 8 Версия для разработчика 4 500 руб.

    Reply
  29. karetir

    (28) Вы наверное имеете в виду версию для ОБУЧЕНИЯ программированию?

    Reply
  30. karetir

    (28) «1С:Предприятие 8 Версия для разработчика 4 500 руб.» — В прайсе 1С от 29.12.09 найти такую версию не сумел — подскажите ее номер в прайсе

    Reply
  31. karetir

    Может вы имели в виду 4601546046574 1С:Предприятие 8. Комплект специалиста по разработке и внедрению для слушателей ЦСО руб 3300 ??

    Reply
  32. karetir

    (27) Но наличие этой коробки у разработчика какой либо конфигурации №1 — права покупателя другой типовой конфигурации (например 1С бухгалтерии 8) права использовать конфигурацию №1 — так как он то ОТДЕЛЬНОЙ лицензии на 1с предприятие 8 НЕ ИМЕЕТ.

    Reply
  33. Арчибальд
    Продукт включает платформу системы программ «1С:Предприятие 8» и готовое прикладное решение — конфигурацию «Бухгалтерия предприятия», а также лицензию на использование «1С:Предприятия 8» не более чем на 5 (пяти) рабочих местах в один момент времени.

    Это все. Лицензируется платформа. Использование конфигураций осуществляется не на основании лицензий, а в соответствии с общими положениями ГК РФ об авторском праве.

    Reply
  34. cyberleo91

    (34) здесь вы путаете лицензионное соглашение на «продукт» и вложенное право на использование «платформы». По вашей логике тогда конфигурацию можно использовать на скольких компьютерах? Не торопитесь с ответом.

    Если читать также дословно как и вы — то только на одном так как на 5-ти можно использовать только 1С предприятие 8.

    Reply
  35. awk

    (35)(34)(33) Ладно, я думаю все помнят презумпцию невиновности? Пока не доказана вина, никто не может считаться виновным. Степень вины определяет суд. Такой вариант устраивает?

    Reply
  36. RayCon

    (27)

    >Пока что франчазинг в России законен.

    Весьма спорное утверждение. Нет в ГК РФ такого понятия, как «франчайзинг». Совсем нет! С большой натяжкой под франчайзинг можно подтянуть Главу 54 ГК, но!.. Лицензионный договор 1С… пардон, даже не 1С, а не некоего Дарумсана, который неизвестно на каких основаниях (в договоре на это нет ссылки), владеет неисключительным правом на торговую марку и продукты 1С, никак не соответствует Главе 54 ГК. Хотя бы по той простой причине, что договор коммерческой концессии подлежит госрегистрации. Следовательно, франчайзинг — всего лишь маркетинговый термин 1С, но никак не юридический (если мы говорим о гражданском праве РФ).

    Reply
  37. PochekutovOleg

    Согласен с RayCon

    Reply
  38. KroVladS

    Всегда нелюбил юристов.

    Reply
  39. AlexanderKai

    Интересно, а может ли обладатель лицензий на сервер и, например, бухгалтерию 3.0 переписать исходные тексты бухгалтерии на другую платформу исключительно в целях внутреннего использования?

    Reply

Leave a Comment

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