Вход | Регистрация
    1  2   
1С:Предприятие :: 1С:Предприятие 8 общая

Code First и Linq to EF на примере 1С версии 8.3

Code First и Linq to EF на примере 1С версии 8.3
Я
   Serginio1
 
17.09.15 - 12:35
Это продолжение Code First и Linq to EF на примере 1С версии 7.7
Выложил тестовую конфигурации с обработкой http://files.rsdn.ru/19608/CodeFirstTo83.zip

Большая просьба выложить или отослать архив SQL так как у меня только файловые. Поэтому сделал вслепую. Буду рад если кто протестирует.
   Serginio1
 
1 - 17.09.15 - 14:03
В CodeFirst можно описать поля неопределенного типа

[ComplexType]
public class РевизитВсеТипы:НеопределенныйТип,НеопределенныйТипБулево,НеопределенныйТипЧисло,НеопределенныйТипДата,НеопределенныйТипСтрока,НеопределенныйТипСсылочный
{
[Column(" _Fld37_TYPE")]
[Required]
[MaxLength(1)]    
override public byte[] Тип { get; set; }

[Column("_Fld37")]
[Required]
[MaxLength(1)]
public byte[] БулевоId { get; set; }

[Column("_Fld37_N",TypeName = "numeric")]
[Required]
public decimal Число { get; set; }

[Column("_Fld37")]
[Required]
public DateTime Дата { get; set; }

[Column("_Fld37_S",TypeName = "nvarchar")]
[Required]
[StringLength(42)]
public string Строка { get; set; }

    [Column("_Fld37_RTREF")]
        [Required]
        [MaxLength(4)]
      public byte[] НомерТаблицы { get; set; }
     
[Column("_Fld37_RRREF")]
       [Required]
        [MaxLength(16)]
        public byte[] Ссылка { get; set; }

    [NotMapped]
public bool Булево {
   get { return БулевоId.ВБулево(); }

 set
   {
  БулевоId = value.БулевоВМассив();
    }
}

}


и использовать

public НеопределенныеТипы.РевизитВсеТипы РевизитВсеТипыId { get; set; }


[NotMapped]
public object РевизитВсеТипы { get{return КонстантыБД.ПолучитьЗначениеНеопределенногоТипа(РевизитВсеТипыId );} set{КонстантыБД.УстановитьЗначениеНеопределенногоТипа(value,РевизитВсеТипыId );} }
   ДенисЧ
 
2 - 17.09.15 - 14:03
шо, опять? (с)
   Serginio1
 
3 - 17.09.15 - 14:14
(3) Нет это уже 8 ка. Будь добр вышли SQL резервную копию
   Принт
 
4 - 17.09.15 - 14:16
Alchemy никому не надо?..
   ДенисЧ
 
5 - 17.09.15 - 14:19
(3) А ключ от квартиры, где девки лежат, тебе не выслать?
Я тебе уже говорил, что тут это никому не интересно. Заведи себе блошек в свите^W в хабре и там пиши. Кому интересно, его уже читают.
   Asmody
 
6 - 17.09.15 - 14:24
(1) Есть один вопрос: нахрена?
   Serginio1
 
7 - 17.09.15 - 14:31
(6) Для развития. Кстати .Net сейчас вполне кроссплатформен. Так что можешь использовать его и на линуксе и на IOS.
А потренироваться лучше на том, что тебе знакомо
(5) Спасибо не надо. Я сейчас просто попросил сделать SQL резервную копию, что бы потренироваться.
   ДенисЧ
 
8 - 17.09.15 - 14:34
(7) Кого попросил?
   Serginio1
 
9 - 17.09.15 - 14:35
(8) Всех в топике

Большая просьба выложить или отослать архив SQL так как у меня только файловые. Поэтому сделал вслепую. Буду рад если кто протестирует.
   Принт
 
10 - 17.09.15 - 14:38
(9) Может лучше вы к нам?
   ДенисЧ
 
11 - 17.09.15 - 14:40
(9) 530ГБ. Высылать на почту?
   ДенисЧ
 
12 - 17.09.15 - 14:40
(9) Неужели так впадлу выгрузить файловую и загрузить в сервер?
   Serginio1
 
13 - 17.09.15 - 14:42
(11) Я выложил http://files.rsdn.ru/19608/CodeFirstTo83.zip  там тестовая база с обработкой.
Она ооочень маленькая. Просто её развернуть на SQL и сделать резервную копию.
   Serginio1
 
14 - 17.09.15 - 14:43
(12) Нет у меня сервера приложений.
   ДенисЧ
 
15 - 17.09.15 - 14:43
(14) А зачем тебе тогда резервная копия?
   Asmody
 
16 - 17.09.15 - 14:43
(7) .NET, может быть, с натяжкой, и кроссплатформенный, MSSQL не кроссплатформенный.
Но даже не в этом дело. Даже если ты данные прочитаешь, что ты с ними делать будешь?
   Serginio1
 
17 - 17.09.15 - 14:44
(15) Так я её у себя разверну на SQL и протестирую.
   ДенисЧ
 
18 - 17.09.15 - 14:45
(17) Для теста давно бы уже спер из интернета пропатченную...
   Serginio1
 
19 - 17.09.15 - 14:46
(18) Подскажи.
(16) Entity Framework 7 вполне себе кросплатформен
https://github.com/aspnet/EntityFramework/wiki/Roadmap
   Serginio1
 
20 - 17.09.15 - 14:48
   ДенисЧ
 
21 - 17.09.15 - 14:49
(19) http://www.forum.mista.ru/rules.php , п.4
Кстати, там же и п. 5
   Принт
 
22 - 17.09.15 - 14:49
А линуксовый дотнет к линуксовому 1С без проблем подключается? Я не в курсе.
   Serginio1
 
23 - 17.09.15 - 14:53
   Serginio1
 
24 - 17.09.15 - 15:09
   Гёдза
 
25 - 17.09.15 - 15:11
(1) Это что каждую таблицу так описывать?
   Serginio1
 
26 - 17.09.15 - 15:14
(25) Там обработка все это делает.
   Serginio1
 
27 - 17.09.15 - 15:49
Вместо апа

public static object ПолучитьЗначениеНеопределенногоСсылочного(НеопределенныйТип ВладелецId)
        {
            var НТС=ВладелецId as НеопределенныйТипСсылочный;
            Func<byte[], object> значение;
            if (ОбъектыПоТипу.TryGetValue(НТС.НомерТаблицы.byteArrayToInt(), out значение))
                return значение(НТС.Ссылка);

                    return null;
        }
        public static object ПолучитьЗначениеНеопределенногоТипа(НеопределенныйТип ВладелецId)
        {
            var тип = ВладелецId.Тип.ВБайт();

            switch(тип)
            {
                case 1: return null;
                case 2: return (ВладелецId as НеопределенныйТипБулево).Булево;
                case 3: return (ВладелецId as НеопределенныйТипЧисло).Число;
                case 4: return (ВладелецId as НеопределенныйТипДата).Дата;
                case 5: return (ВладелецId as НеопределенныйТипСтрока).Строка;
                case 8: return ПолучитьЗначениеНеопределенногоСсылочного(ВладелецId);
            }
            return null;
        }
   Oftan_Idy
 
28 - 17.09.15 - 15:52
(0) А нахрена это?
   ДенисЧ
 
29 - 17.09.15 - 15:53
(28) "Для развития"
Вот только нафига это _тут_ ?
   Serginio1
 
30 - 17.09.15 - 16:01
(29) Денис спасибо, что поддерживаешь ветку.
(28) Мне нужна резервная копия. А если знаешь .Net то можешь попрактиковаться в Linq to EF на знакомых данных.
 
 Рекламное место пустует
   Serginio1
 
31 - 17.09.15 - 16:02
Ну и понять внутренне устройство БД 1С
   vhl
 
32 - 17.09.15 - 16:12
(0) Ты можешь объяснить что это такое вообще и какую пользу можно извлечь при применении этой технологии?
   Serginio1
 
33 - 17.09.15 - 16:21
(32) Это уже каждый решает для себя.
1. Ознакомление с технологиями Code First
2. Освоение Linq to EF на знакомых данных
3. После изучения первых двух пунктов можно использовать например
3.1 Для ускорения долгих отчетов используя скомпилированный код, кучу нетовских библиотек.
3.2 Для интеграции с системами написанными на .Net
   vhl
 
34 - 17.09.15 - 16:24
(33) Да блин, что такое Code First и Linq to EF - вот главный вопрос!
   Новиков
 
35 - 17.09.15 - 16:26
(34) +1
   Serginio1
 
36 - 17.09.15 - 16:27
   vhl
 
37 - 17.09.15 - 16:29
(36) >Отличительной чертой Entity Framework является использование запросов LINQ для выборки данных из БД.
>Другим ключевым понятием является Entity Data Model.
>Entity Data Model состоит из трех уровней: концептуального, уровень хранилища и уровень сопоставления (маппинга).
Вот спасибо! Раньше было не понятно, а теперь понятно!
   Serginio1
 
38 - 17.09.15 - 16:33
   Serginio1
 
39 - 17.09.15 - 16:36
Вот здесь куча примеров https://code.msdn.microsoft.com/LINQ-Sample-Queries-13a42a54
   vhl
 
40 - 17.09.15 - 16:37
Ты бы по человечески в 2х предложениях описал бы, а не ссылками кидался.
   Serginio1
 
41 - 17.09.15 - 16:43
(40) Тяжело в двух предложениях. Статьи то как раз и написаны, что ввести.
Линк это работа с коллекциями по аналогии с SQL только там все типизированно при составлении запроса и получаешь так же типизированный результат. Так как используются ленивые вычисления, ты можешь склеивать запросы. В SQL приходится склеивать строки. При этом нет защиты от ошибов. В Linq уже на этапе программирования тебе покажут ошибки.
С Linq намного удобнее работать чем с SQL.
   vhl
 
42 - 17.09.15 - 17:12
(41) Можешь привести итоговый пример работы? Пусть даже в теории. Как это будет выглядеть в конечном счете?
   Serginio1
 
43 - 17.09.15 - 17:18
Я в этой теме Code First и Linq to EF на примере 1С версии 7.7

кучу примеров приводил
   Serginio1
 
44 - 17.09.15 - 17:22
Олег огромнейшее спасибо!
   Serginio1
 
45 - 17.09.15 - 18:04
Если у кого есть 2012 SQL просьба развернуть тестовую базу и выслать резервную копию
   Гёдза
 
46 - 17.09.15 - 18:17
(45) почему сам не можешь то?
   Гёдза
 
47 - 17.09.15 - 18:19
Попробуй на linq написать виртуальную таблицу остатков. Даже без оборотов хотябы
   Гёдза
 
48 - 17.09.15 - 18:19
Или срез последних
   Serginio1
 
49 - 17.09.15 - 18:37
(46) Нет у меня Сервера приложений. Но у меня есть резервная копия. Сейчас express новый разверну.
(48) Здесь уже показывал Code First и Linq to EF на примере 1С версии 7.7

(47) Да там без проблем написать. Два запроса объединение и группировка.

Я уже показывал, что возможностей Linq даже больше чем в 1С языке запросов кроме пакетов и временных таблиц
   Serginio1
 
50 - 18.09.15 - 15:28
Обновил файлы. Наткнулся на забавную вещь.
В 1С Есть свойства неопределенного типа которое состоит из нескольких полей. В Code Firs есть атрибут ComplexType

   public partial class Тестовый : СправочникПредок
    {
        public partial class НеопределенныеТипы
        {
            [ComplexType]
            public class ЛюбаяСсылка_Fld19 : НеопределенныйТип, НеопределенныйТипСсылочный
            {
                [Column("_Fld19_TYPE")]
                [Required]
                [MaxLength(1)]
                override public byte[] Тип { get; set; }

                [Column("_Fld19_RTREF")]
                [Required]
                [MaxLength(4)]
                public byte[] НомерТаблицы { get; set; }

                [Column("_Fld19_RRREF")]
                [Required]
                [MaxLength(16)]
                public byte[] Ссылка { get; set; }

            }
       }
  }


public partial class Тестовый : СправочникПредок
    {
        public partial class ТЧ
        {
            public partial class НеопределенныеТипы
            {
                [ComplexType]
                public class ЛюбаяСсылка_Fld52 : НеопределенныйТип, НеопределенныйТипСсылочный
                {
                    [Column("_Fld52_TYPE")]
                    [Required]
                    [MaxLength(1)]
                    override public byte[] Тип { get; set; }

                    [Column("_Fld52_RTREF")]
                    [Required]
                    [MaxLength(4)]
                    public byte[] НомерТаблицы { get; set; }

                    [Column("_Fld52_RRREF")]
                    [Required]
                    [MaxLength(16)]
                    public byte[] Ссылка { get; set; }

                }

            }


        }
    }


Есть поле в разных типах ЛюбаяСсылка, но в базе все названия [ComplexType] должны быть уникальными. Поэтому добавляю номер таблицы для неопределенных владельцев и номер поля для неопределенных полей
   Serginio1
 
51 - 24.09.15 - 16:40
Выложил статью http://catalog.mista.ru/profile/public/
   quest
 
52 - 24.09.15 - 16:43
ссылку поправь
   Serginio1
 
53 - 24.09.15 - 16:45
   Serginio1
 
54 - 25.09.15 - 17:41
Выложил практику использования
http://catalog.mista.ru/public/402433/
   Serginio1
 
55 - 28.09.15 - 17:33
Кстати посмотрел на просторах интернета, что то не нашел описания подключения к ODATA.

На той тестовой конфигурации опубликовал ODATA
Установил справочники
Массив = Новый Массив();
    
Для Каждого Справочник Из Метаданные.Справочники Цикл
    Массив.Добавить(Справочник);
КонецЦикла;
УстановитьСоставСтандартногоИнтерфейсаOData(Массив);


Затем в VS Добавить ссылку на службу

http://localhost/LinqBD/odata/standard.odata/$metadata

Получаем описание классов доступ к кторым через
var uriString = @"http://localhost/LinqBD/odata/standard.odata/";;
            var context = new ServiceReference1.EnterpriseV8(new Uri(uriString));
            var query = context.CreateQuery<ServiceReference1.Catalog_Тестовый>("Catalog_Тестовый");
            var result = query.ToList();
   Serginio1
 
56 - 29.09.15 - 11:37
Кстати есть и поддержка JSON

var uriString = @"http://localhost/LinqBD/odata/standard.odata/";;
            var context = new ServiceReference1.EnterpriseV8(new Uri(uriString));
            context.Format.UseJson();

            var query = context.CreateQuery<ServiceReference1.Catalog_Тестовый>(@"Catalog_Тестовый");
  
            var result = query.ToList();


Генерирует такой запрос
GET http://localhost/LinqBD/odata/standard.odata/Catalog_Тестовый HTTP/1.1
DataServiceVersion: 1.0;NetFx
MaxDataServiceVersion: 3.0;NetFx
Accept: application/json;odata=minimalmetadata
Accept-Charset: UTF-8
User-Agent: Microsoft ADO.NET Data Services
Host: tc-smirnov-s
Connection: Keep-Alive

И ответ

HTTP/1.1 200 OK
Content-Length: 14112
Content-Type: application/json;charset=utf-8
Server: Microsoft-IIS/7.5
DataServiceVersion: 3.0
Date: Tue, 29 Sep 2015 08:29:46 GMT

{
"odata.metadata": "http://localhost/LinqBD/odata/standard.odata//$metadata#Catalog_Тестовый";,
"value": [{
"Ref_Key": "aada18ad-5308-11e5-8e05-c86000c70663",
"DataVersion": "AAAAAgAAAAA=",
"DeletionMark": false,
"Code": "000000001",
"Description": "Первый Число",
"Строка": "Число",
"СтрокаФиксированная": "          ",
"СтрокаДлинная": "",
"Число": 1,
"Целое": "1",
"Дата": "2015-09-04T00:00:00",
"Булево": true,
"ХранилищеЗначения_Type": "application/xml+xdto",
"ХранилищеЗначения_Base64Data": "PFN0cmluZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEi\r\nIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5z\r\ndGFuY2UiPtCf0YDQvtGB0YLQviDRgdGC0YDQvtC60LA8L1N0cmluZz4=",
"УникальныйИдентификатор": "65d503d9-e412-4b19-99af-ed3fc8b063b1",
"ЛюбаяСсылка": "aada18ac-5308-11e5-8e05-c86000c70663",
"ЛюбаяСсылка_Type": "StandardODATA.Catalog_Номенклатура",
"ПеречислениеДляТестов": "Первый",
"РевизитВсеТипы": "223.33",
"РевизитВсеТипы_Type": "Edm.Double",
"НеопределенныйНеССылочный": "99.6",
"НеопределенныйНеССылочный_Type": "Edm.Double",
"РеквизитСправочник_Key": "aada18ac-5308-11e5-8e05-c86000c70663",
"РеквизитДокумент_Key": "ebb8aaa1-5534-11e5-a6ad-c86000c70663",
"ТабЧасть": [
{
"Ref_Key": "aada18ad-5308-11e5-8e05-c86000c70663",
"LineNumber": "1",
"Номенклатура_Key": "aada18ac-5308-11e5-8e05-c86000c70663",
"Количество": "1",
"Сумма": 1,
"ЛюбаяСсылка": "",
"ЛюбаяСсылка_Type": "StandardODATA.Undefined"
}
],
"РеквизитСправочник@navigationLinkUrl": "Catalog_Тестовый(guid'aada18ad-5308-11e5-8e05-c86000c70663')/РеквизитСправочник"
},
   Serginio1
 
57 - 29.09.15 - 13:49
Ну и соответственоо вызов определенного элемента
    var query = context.CreateQuery<ServiceReference1.Catalog_Тестовый>(@"Catalog_Тестовый(guid'aada18ad-5308-11e5-8e05-c86000c70663')");

Можно применять фильтры
            var query = context.CreateQuery<ServiceReference1.Catalog_Тестовый>(@"Catalog_Тестовый")
                         .AddQueryOption("$filter", "Число le 100");
   Serginio1
 
58 - 29.09.15 - 15:29
А можно и так

          var  result = (from Тестовый in context.Catalog_Тестовый
                                    where Тестовый.Число<500
                                    select Тестовый).ToList();
   Serginio1
 
59 - 29.09.15 - 17:41
Выложил статью Linq To ODATA http://catalog.mista.ru/public/403524/
   Адинэснег
 
60 - 29.09.15 - 18:38
 
 Рекламное место пустует
   Serginio1
 
61 - 29.09.15 - 18:45
Зачем 1С применяет ODATA?
http://v8.1c.ru/o7/201312rest/

Зачем Linq к ODATа, а затем что это намного проще чем работать с нетипизированными структурам, задавать условия как в нормальных запросах полностью абстрагируясь от механизмов ODATA и программируя привычно используя объекты и Linq
   Serginio1
 
62 - 29.09.15 - 18:46
   Гёдза
 
63 - 29.09.15 - 18:46
(60) Бессмысленно задавать ему такие вопросы. Он не понимает
   Serginio1
 
64 - 29.09.15 - 18:48
(63) Эх тупой я
   Гёдза
 
65 - 29.09.15 - 18:49
(64) Да не тупой, просто твои ковыряния в песочнице никому не понятны
   Гёдза
 
66 - 29.09.15 - 18:50
Собственно эта ветка подтверждает (да и на ис тоже) что кроме тебя это никому не нужно
   Cyberhawk
 
67 - 29.09.15 - 18:56
У меня скуль 2012 есть, если че-то еще надо - стучи в асю
   Serginio1
 
68 - 29.09.15 - 20:08
(67) Огромное спасибо. Уже решил проблему. Поставил у себя SQL 2014 Express
   Dmitry1c
 
69 - 29.09.15 - 20:11
Ух какие же вы извращенцы
   Serginio1
 
70 - 29.09.15 - 20:25
(69) Спасибо. А то в одной миссионерской позе (1С) совсем надоело. Хочется, чего то возвышенного
   Мефистофель
 
71 - 29.09.15 - 20:51
почему не на ява?
в качестве первого проекта на ява хочу реализовать объекты 1С :)
   Serginio1
 
72 - 29.09.15 - 21:27
(71) У Явы есть ограничения например для использования сборок
http://catalog.mista.ru/public/238584/

А что касается Linq в явеЮ то он разве есть?
http://rsdn.ru/forum/java/5431309.flat
   Serginio1
 
73 - 30.09.15 - 10:24
(66) Ошибаешься. Уже один человек нашелся https://github.com/WorldException/v7py
Смотри комментарий http://catalog.mista.ru/public/402433/
Во!
   DDwe
 
74 - 30.09.15 - 10:38
(73) О, целый один комментарий. Прогресс. И все-таки вопрос - на ...что всё это?
   Гёдза
 
75 - 30.09.15 - 10:40
(71) Лучше пиши минисклад на спринг+хибернэйт
   Serginio1
 
76 - 30.09.15 - 10:46
(71) Зачем? У меня кроме этого забот хватает и на 1C,C#,JS. А Linq это отдушина, в свободное от работы время.
(74) Понимаешь многие программисты изучают не только 1С.
Некоторые хотят расширить свой кругозор, понять новое и использовать свои знания, когда появится возможность.
Я так и делаю. Но мне приходится кучу информации искать. И тем кому это вдруг понадобится,  я рассчитываю, что мои статьи помогут ему во многом разобраться. А помощь в прогрессе это и есть смысл жизни.
   DDwe
 
77 - 30.09.15 - 10:53
(76)Т.е всё, что ты причислил к 1С не имеет ни какого отношения? Тогда зачем ты завел тему здесь?
   Serginio1
 
78 - 30.09.15 - 10:57
(77) Как это не имеет? Это как раз доступ к данным 1С из программ написанных на .Net
   Serginio1
 
79 - 30.09.15 - 10:59
(78) Мало того используя http://catalog.mista.ru/public/238584/
ты можешь использовать нетовские сборки в 1С
   DDwe
 
80 - 30.09.15 - 11:01
(79) Что такое нетовская сборка? Сборка чего?
   DDwe
 
81 - 30.09.15 - 11:02
(78) И зачем мне доступ к 1С из программ написанных на .НЕТ?
   Лодырь
 
82 - 30.09.15 - 11:05
(81) Тебе не нужна, успокойся. Мне нужна.
   DDwe
 
83 - 30.09.15 - 11:06
(82) А Вам зачем?
   Лодырь
 
84 - 30.09.15 - 11:09
(83) Из 1С я расширяю возможности. Из внешних систем имею возможность прямого доступа к данным 1С.
   Serginio1
 
85 - 30.09.15 - 11:12
(81) Да здесь полно веток, где мне это не нужно. Но я не захожу в них и не кричу "А нафига". Есть полно узкоспециализированных задач, с которыми среднестатистический  1Сник никогда и не сталкивается, а другие с этими задачами связаны постоянно. Информация не бывает бесполезной.
   Serginio1
 
86 - 30.09.15 - 11:43
(84) Спасибо за поддержку.
   Гёдза
 
87 - 30.09.15 - 11:55
(84) Это вообще-то нарушение лицензионного соглашения
   Serginio1
 
88 - 30.09.15 - 11:59
(87) ODATA? И к 7.7 нет нарушения
   Гёдза
 
89 - 30.09.15 - 12:11
(88) к одата - нет, напрямую к скл - есть
   Serginio1
 
90 - 30.09.15 - 12:14
(89) В 7.7. Приводи. Все 1С++ пользуются и не жужжат. Да и к 8.3 как обслуживать базу, восстанавливать после неудачного динамического обновления итд.
   Гёдза
 
91 - 30.09.15 - 12:15
(90) Тебе выдержку из лицензионного соглашения привести что ли?
В 77 кстати не было такого )))
   Serginio1
 
92 - 30.09.15 - 12:16
(91) Я про 7.7.
   Гёдза
 
93 - 30.09.15 - 12:17
   Serginio1
 
94 - 30.09.15 - 12:17
92+ Так как ты в 89 в ответ на 88 утверждал, что для 7.7 SQL есть. Показывай.
   Serginio1
 
95 - 30.09.15 - 12:18
(93) И где там 7.7?
   Гёдза
 
96 - 30.09.15 - 12:18
(94) Где я утверждал про 77?
   Serginio1
 
97 - 30.09.15 - 12:20
(96) Да так как ты дал свой ответ на 88 в которым русккими словами написано
ODATA? И к 7.7 нет нарушения

Кстати а дай выдержку по 8.x я чёт о не найду
   Serginio1
 
98 - 30.09.15 - 12:24
97+ Спасибо нашел пункт 65. Внимательней читать нужно.
   oleg_km
 
99 - 30.09.15 - 12:31
Статья 1280. Право пользователя программы для ЭВМ и базы данных
(в ред. Федерального закона от 12.03.2014 N 35-ФЗ)

1. Лицо, правомерно владеющее экземпляром программы для ЭВМ или экземпляром базы данных (пользователь), вправе без разрешения автора или иного правообладателя и без выплаты дополнительного вознаграждения:
1) осуществлять действия, необходимые для функционирования программы для ЭВМ или базы данных (в том числе в ходе использования в соответствии с их назначением), включая запись и хранение в памяти ЭВМ (одной ЭВМ или одного пользователя сети), внесение в программу для ЭВМ или базу данных изменений исключительно в целях их функционирования на технических средствах пользователя, исправление явных ошибок, если иное не предусмотрено договором с правообладателем;
(пп. 1 в ред. Федерального закона от 12.03.2014 N 35-ФЗ)
2) изготовить копию программы для ЭВМ или базы данных при условии, что эта копия предназначена только для архивных целей или для замены правомерно приобретенного экземпляра в случаях, когда такой экземпляр утерян, уничтожен или стал непригоден для использования. При этом копия программы для ЭВМ или базы данных не может быть использована в иных целях, чем цели, указанные в подпункте 1 настоящего пункта, и должна быть уничтожена, если владение экземпляром таких программы или базы данных перестало быть правомерным.
2. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения изучать, исследовать или испытывать функционирование такой программы в целях определения идей и принципов, лежащих в основе любого элемента программы для ЭВМ, путем осуществления действий, предусмотренных подпунктом 1 пункта 1 настоящей статьи.
3. Лицо, правомерно владеющее экземпляром программы для ЭВМ, вправе без согласия правообладателя и без выплаты дополнительного вознаграждения воспроизвести и преобразовать объектный код в исходный текст (декомпилировать программу для ЭВМ) или поручить иным лицам осуществить эти действия, если они необходимы для достижения способности к взаимодействию независимо разработанной этим лицом программы для ЭВМ с другими программами, которые могут взаимодействовать с декомпилируемой программой, при соблюдении следующих условий:
1) информация, необходимая для достижения способности к взаимодействию, ранее не была доступна этому лицу из других источников;
2) указанные действия осуществляются в отношении только тех частей декомпилируемой программы для ЭВМ, которые необходимы для достижения способности к взаимодействию;
3) информация, полученная в результате декомпилирования, может использоваться лишь для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, не может передаваться иным лицам, за исключением случаев, когда это необходимо для достижения способности к взаимодействию независимо разработанной программы для ЭВМ с другими программами, а также не может использоваться для разработки программы для ЭВМ, по своему виду существенно схожей с декомпилируемой программой для ЭВМ, или для осуществления другого действия, нарушающего исключительное право на программу для ЭВМ.
4. Применение положений, предусмотренных настоящей статьей, не должно противоречить обычному использованию программы для ЭВМ или базы данных и не должно ущемлять необоснованным образом законные интересы автора или иного правообладателя.


Сергей, не заморачивайся. Продолжай исследования, пожалуйста
   Serginio1
 
100 - 30.09.15 - 12:33
(99) Олег большое спасибо!
Кстати
Это ограничение распространяется на любые действия с данными, в том числе на изменение их структуры, а так же на чтение или изменение самих данных информационной базы или служебных данных "1С:Предприятия".

Данное ограничение необходимо для обеспечения стабильности работы механизмов системы, осуществления поддержки и возможности перехода на новые версии "1С:Предприятия".

Интересно как чтение будет мешать работе механизмов системы и переходу на новые версии?
  1  2   

Список тем форума
Рекламное место пустует  Рекламное место пустует
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство.
Фредерик Брукс-младший
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.