Можете привести ссылку на конкретный параграф закона?
Конечно:
ГК РФ Статья 1334. Исключительное право изготовителя базы данных
Изготовителю базы данных, создание которой (включая обработку или представление соответствующих материалов) требует существенных финансовых, материальных, организационных или иных затрат, принадлежит исключительное право извлекать из базы данных материалы и осуществлять их последующее использование в любой форме и любым способом...
ГК РФ Статья 1280. Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ
1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения:
1) внести в программу для ЭВМ или базу данных изменения исключительно в целях их функционирования на технических средствах пользователя и осуществлять действия, необходимые для функционирования таких программы или базы данных в соответствии с их назначением, в том числе запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), а также осуществить исправление явных ошибок, если иное не предусмотрено договором с правообладателем;
Мы работаем в этом направлении, как вы наверное уже знаете
Я знаю об этом. Ваша работа в этом направлении и открытый XML-формат конфигурации безусловно очень позитивные шаги. Они делают ненужными всякие парсеры cf-формата.
Чего именно не хватает в языке? Можно примеры?
Не хватает развития. Вы в статье перечислили много технологий и языков программирования. Как вы сами думаете язык 1С приближен по выразительности и возможностям к языкам C++, C#, Java или он остался на одном уровне с Ассемблером? Даже JavaScript, с оглядкой на который создавался 1С-язык, получил развитие в виде классов, пространств имен, анонимные callback-функции, а 1С- нет.
Это типичная политика большинства вендоров. Надеюсь, вы понимаете, чем она вызвана. В особенности вот это:
«гонения за прямой доступ к базе данных»
В том-то и дело, что перестал понимать. Эта политика устарела. С одной стороны она противоречит законодательству РФ, с другой стороны она противоречит вашей политике в отношении иностранных разработчиков: 1c-dn.com/library/data_structure_in_1c_enterprise_8
Судя по этой ссылке, у вас появилось неравное отношение к разработчикам СНГ и разработчикам из дальнего зарубежья. Для иностранцев — возьмите данные, они лежат там-то и там-то, для местных — запрещено лицензионным соглашением. Я так понимаю, ваша стандартная российская политика не работает в более развитых странах и чревата реакцией государств Евросоюза со штрафами. Хотелось бы видеть равное отношение.
1С-молодцы, конечно. Но при всех достоинствах системы есть несколько негативных, на мой взгляд, моментов:
1. Отсталость среды разработки по сравнению с Eclipse, VS
2. Неразвитость языка программирования 1С. В него долгое время не вводились новые конструкции.
3. Отсутствие модульного подхода, все решения получаются монолитными
4. Официальная политика 1С на закрытость системы. Например, запрет и гонения за прямой доступ к базе данных, за декомпиляторы 1С, внешние средства-дополнения к конфигуратору.
Интересно узнать про Native API. Понятно, что для Linux нужен был принципиально другой подход. Но он стал ограниченнее COM API: поддерживает только простейшие типы, а поддержку IDispatch не сделали. Native API в Windows не интегрируется с .Net framework, как раньше COM API. /CLR-реализация интеграции через С++ приводит к Loader Lock.
Вы не сталкивались с ситуациями, когда на реальных данных в работающей базе:
1. Нужно разделенный по областям данным объект (например, регистр накопления) сделать общим.
2. Обратная операция — нужно общий объект, разделить по областям данных.
Как вы действуете в этом случае?
Одной из причин выбора метода прямого доступа стал как раз РИБ. В случае с РИБ время на удаление обычными средствами будет больше в разы. Время тратится не только на удаление в одной базе. Время дополнительно тратится на:
1. Формирование пакета обмена. В этот момент пользователям практически не реально работать в базе — обмен занимает основные таблицы.
2. Загрузку пакета обмена в каждую базу с занятием основных таблиц. Пользователям не реально работать в базе. Время на удаление будет сравнимо со временем пометки на удаление в первой базе.
В случае прямого доступа обработка и последующий пересчет итогов запускаются параллельно на всех связанных базах.
Хорошая конструктивная критика. Совсем упустил из виду негативные стороны подхода. Дописал их в конце статьи.
1. Что с итогами регистров? Таблицы итогов вы, похоже, не трогаете. Если итоги не пересчитать, база останется в несогласованном состоянии. А если пересчитать по-честному, разница в скорости станет не такой уж впечатляющей. Пересчитывать итоги прямыми запросами, думаю, даже вы не решитесь.
Пересчет делается через Конфигуратор-Тестирование и Исправление-Пересчет итогов
2. При таком удалении не исполняется логика отмены проведения, которая может быть не эквивалентна простому удалению движений. Возможный результат — опять же несогласованная база и ошибки при дальнейшей работе. Значит, данная обработка применима не для всех конфигураций и не для всех документов. Об этом нужно упомянуть в статье.
В обработке можно исключить документы с «особенной» логикой отмены проведения
3. Обработка требует наличия вашей платной внешней компоненты. Об этом тоже нужно предупредить. Хотя в данном случае достаточно обычного ADODB.Connection.
Обработка без проблем работает на ознакомительной версии. Код открыт. Специальные методы защиты алгоритма не предпринимались. Имея открытый код обработки можно переписать алгоритм под разные методы доступа к СУБД.
P.S. Вы вообще эту обработку в продакшене использовали? Или она написана исключительно для пиара вашей ВК?
Алгоритм отработал в реальной базе. Сама база отработала уже неделю с реальными пользователями.
Думаю для тех, кто хотя бы немного знаком с 1С известно, что прямая работа с БД — это нарушение лицензионного соглашения, но оставим этот вопрос.
Официальная позиция 1С по прямому доступу многим известна, не стоит так явно выдавать свою ангажированность. Тем не менее мыслящим людям рекомендую ознакомиться со статьей 1334 п.1 ГК РФ часть 4 «Исключительное право изготовителя базы данных», статьей 25 п.1 и п.3 «Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ» Закона об авторском праве и смежных правах. А также подумать, почему в 1С появилась родная функция ПолучитьСтруктуруХраненияБазыДанных и почему до сих пор не создано ни одного прецедента преследования по этому пункту лицензии. Комментарий выше: «Вообще-то, вопрос прямого доступа к БД в 1С является критически важным для сложных проектов» как бы намекает на ответ.
Если автор так уверен, что его действия содержат полный список операций, которые делает система при установке пометки удаления документов непосредственно средствами платформы, и сами операции настолько неоптимальны, что на их выполнение средставами 1С уходит аж на 2 порядка больше времени, то почему бы не написать, что именно платформа 1С делает не так?
Давайте разбираться спокойно без фанатизма. Где конкретно автор критикует 1С и говорит, что она делает что-то не так? Если бы я дублировал запросы 1С по каждому документу индивидуально, то получил бы схожее время работы.
Собрать трассировку профайлером — простейшая операция, зато статья получилась бы куда интереснее.
Нравится тратить впустую время, изучайте профайлером результат работы 1С и публикуйте статью. Мне не интересны темы, не приводящие к результату. А конкретно данная тема приводит к значительной экономии моего времени и времени пользователей.
Вот интересно, будь это не 1С, а другая ORM, тоже бы полезли менять БД напрямую, без понимания работы системы?
Не нужно делать из 1С священную корову. 1С не лучше и не хуже других программ. Не пойму, что может остановить полезть менять напрямую «другую ORM», если скорость от этой операции возрастет в 100 раз.
В связи со справедливыми комментариями о негативных эффектах прямого доступа дополнил статью:
PS. Список возникающих проблем и пути устранения:
1. Обработка игнорирует документы, где запрещено проведение, например, корректировка записей регистров. В корректировке записей регистров удаление документа связано со снятием активности записей регистров.
2. Результат удаления не отражается в планах обмена. Решается одновременным запуском обработки в связанных базах.
3. Не затрагивает таблицы итогов. Решается пересчетом итогов через Конфигуратор-Тестирование и Исправление-Пересчет итогов.
Объяснение простое. В статью попал только код, передающий суть метода. Остальной код, связанный с обработкой событий интерфейса, обращениям к метаданным не попал, чтобы не запутать читателей. Получается, что из общего объема кода код обращений к .Net занимает процентов 10-20. Целесообразно, чтобы общий стиль кода был русский с английскими вкраплениями. Да и 1С-никам, которые будут доделывать под себя метод будет привычнее.
В связи с тем, что ваше негодование разделяют многие в разных статьях про 1С, у меня появляются вопросы:
1. Почему русский код считается плохим стилем в русскоговорящей стране?
2. В проектах .Net/Asp.Net тесной интеграции с 1С вы будете каждый объект/поле схожих с 1С данных переводить на английский? Как следствие держать в голове словарь соответствий?
3. Попробуйте перевести быстро термины из кода статьи: документ, журнал, регистр. Сколько уйдет времени на правильный перевод с тем смыслом, что закладывает 1С в эти типы? Когда я занимался в свое время переводом конфигураций, я брал эти термины из помощи 1С, благо переводы там были. Это занимало время. А есть случаи посложнее: перевод Контрагент, ДоговорКонтрагента, ПриходныйКассовыйОрдер, Номенклатура.
Решилась проблема с SVN. Клиент зависал из-за неверной сетевой настройки сервера SVN и проброски портов. После устранения проблемы скорость просмотра логов стала приемлемой.
Я намеренно про Git в комментарии ничего не написал, потому что не знаю всех его особенностей. SVN не понимает — для него будет такая операция равносильна удалению файла и добавлению файла в другом каталоге. Если нужно показать SVN копирование, нужно на клиенте SVN явно указывать, что файл был скопирован.
В любом случае система получается не универсальная.
Если через 6-7 месяцев у конфигуратора изменится поведение, то вся структура раскладки «в четком соответствии по точкам» рухнет. Будет новая структура каталогов. Причем для систем версионирования это будет равнозначно как удаление файлов и создание файлов в новом каталоге, т.е. версионирование на данном этапе прекращается.
В моем же случае, когда сначала планируется результат, а нет привязки к точкам, даже при изменении характера выгрузки 1С выгрузка будет идти однотипно. Я остаюсь при своем мнении, что Help.xml должен быть внутри папки Help, также как и описатели форм в папках для конкретной формы, чтобы по конкретной папке можно было отследить историю работы с этими объектами.
Конечно:
Я знаю об этом. Ваша работа в этом направлении и открытый XML-формат конфигурации безусловно очень позитивные шаги. Они делают ненужными всякие парсеры cf-формата.
Не хватает развития. Вы в статье перечислили много технологий и языков программирования. Как вы сами думаете язык 1С приближен по выразительности и возможностям к языкам C++, C#, Java или он остался на одном уровне с Ассемблером? Даже JavaScript, с оглядкой на который создавался 1С-язык, получил развитие в виде классов, пространств имен, анонимные callback-функции, а 1С- нет.
В том-то и дело, что перестал понимать. Эта политика устарела. С одной стороны она противоречит законодательству РФ, с другой стороны она противоречит вашей политике в отношении иностранных разработчиков:
1c-dn.com/library/data_structure_in_1c_enterprise_8
Судя по этой ссылке, у вас появилось неравное отношение к разработчикам СНГ и разработчикам из дальнего зарубежья. Для иностранцев — возьмите данные, они лежат там-то и там-то, для местных — запрещено лицензионным соглашением. Я так понимаю, ваша стандартная российская политика не работает в более развитых странах и чревата реакцией государств Евросоюза со штрафами. Хотелось бы видеть равное отношение.
1. Отсталость среды разработки по сравнению с Eclipse, VS
2. Неразвитость языка программирования 1С. В него долгое время не вводились новые конструкции.
3. Отсутствие модульного подхода, все решения получаются монолитными
4. Официальная политика 1С на закрытость системы. Например, запрет и гонения за прямой доступ к базе данных, за декомпиляторы 1С, внешние средства-дополнения к конфигуратору.
1. Нужно разделенный по областям данным объект (например, регистр накопления) сделать общим.
2. Обратная операция — нужно общий объект, разделить по областям данных.
Как вы действуете в этом случае?
1. Формирование пакета обмена. В этот момент пользователям практически не реально работать в базе — обмен занимает основные таблицы.
2. Загрузку пакета обмена в каждую базу с занятием основных таблиц. Пользователям не реально работать в базе. Время на удаление будет сравнимо со временем пометки на удаление в первой базе.
В случае прямого доступа обработка и последующий пересчет итогов запускаются параллельно на всех связанных базах.
Пересчет делается через Конфигуратор-Тестирование и Исправление-Пересчет итогов
В обработке можно исключить документы с «особенной» логикой отмены проведения
Обработка без проблем работает на ознакомительной версии. Код открыт. Специальные методы защиты алгоритма не предпринимались. Имея открытый код обработки можно переписать алгоритм под разные методы доступа к СУБД.
Алгоритм отработал в реальной базе. Сама база отработала уже неделю с реальными пользователями.
Официальная позиция 1С по прямому доступу многим известна, не стоит так явно выдавать свою ангажированность. Тем не менее мыслящим людям рекомендую ознакомиться со статьей 1334 п.1 ГК РФ часть 4 «Исключительное право изготовителя базы данных», статьей 25 п.1 и п.3 «Свободное воспроизведение программ для ЭВМ и баз данных. Декомпилирование программ для ЭВМ» Закона об авторском праве и смежных правах. А также подумать, почему в 1С появилась родная функция ПолучитьСтруктуруХраненияБазыДанных и почему до сих пор не создано ни одного прецедента преследования по этому пункту лицензии. Комментарий выше: «Вообще-то, вопрос прямого доступа к БД в 1С является критически важным для сложных проектов» как бы намекает на ответ.
Давайте разбираться спокойно без фанатизма. Где конкретно автор критикует 1С и говорит, что она делает что-то не так? Если бы я дублировал запросы 1С по каждому документу индивидуально, то получил бы схожее время работы.
Нравится тратить впустую время, изучайте профайлером результат работы 1С и публикуйте статью. Мне не интересны темы, не приводящие к результату. А конкретно данная тема приводит к значительной экономии моего времени и времени пользователей.
Не нужно делать из 1С священную корову. 1С не лучше и не хуже других программ. Не пойму, что может остановить полезть менять напрямую «другую ORM», если скорость от этой операции возрастет в 100 раз.
В связи с тем, что ваше негодование разделяют многие в разных статьях про 1С, у меня появляются вопросы:
1. Почему русский код считается плохим стилем в русскоговорящей стране?
2. В проектах .Net/Asp.Net тесной интеграции с 1С вы будете каждый объект/поле схожих с 1С данных переводить на английский? Как следствие держать в голове словарь соответствий?
3. Попробуйте перевести быстро термины из кода статьи: документ, журнал, регистр. Сколько уйдет времени на правильный перевод с тем смыслом, что закладывает 1С в эти типы? Когда я занимался в свое время переводом конфигураций, я брал эти термины из помощи 1С, благо переводы там были. Это занимало время. А есть случаи посложнее: перевод Контрагент, ДоговорКонтрагента, ПриходныйКассовыйОрдер, Номенклатура.
В любом случае система получается не универсальная.
В моем же случае, когда сначала планируется результат, а нет привязки к точкам, даже при изменении характера выгрузки 1С выгрузка будет идти однотипно. Я остаюсь при своем мнении, что Help.xml должен быть внутри папки Help, также как и описатели форм в папках для конкретной формы, чтобы по конкретной папке можно было отследить историю работы с этими объектами.
В моем случае ведется файл откуда-куда скопирован файл github.com/elisy/ssl/blob/master/Configuration.xmlproj