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


#0 by Serginio1
Это продолжение Выложил тестовую конфигурации с обработкой Большая просьба выложить или отослать архив SQL так как у меня только файловые. Поэтому сделал вслепую. Буду рад если кто протестирует.
#0 by Serginio1
Это продолжение Выложил тестовую конфигурации с обработкой Большая просьба выложить или отослать архив SQL так как у меня только файловые. Поэтому сделал вслепую. Буду рад если кто протестирует.
#1 by Serginio1
В CodeFirst можно описать поля неопределенного типа [ComplexType] public class РевизитВсеТипы:НеопределенныйТип,НеопределенныйТипБулево,НеопределенныйТипЧисло,НеопределенныйТипДата,НеопределенныйТипСтрока,НеопределенныйТипСсылочный { [Column(" _Fld37_TYPE")] [Required] [MaxLength]     override public byte[] Тип { get; set; } [Column("_Fld37")] [Required] [MaxLength] [Required] public decimal Число { get; set; } [Column("_Fld37")] [Required] public DateTime Дата { get; set; } [Column("_Fld37_S",TypeName = "nvarchar")] [Required] [StringLength] public string Строка { get; set; }     [Column("_Fld37_RTREF")]         [Required] public bool Булево { } } public НеопределенныеТипы.РевизитВсеТипы РевизитВсеТипыId { get; set; } [NotMapped] public object РевизитВсеТипы { get{return КонстантыБД.ПолучитьЗначениеНеопределенногоТипа(РевизитВсеТипыId );} set{КонстантыБД.УстановитьЗначениеНеопределенногоТипа(value,РевизитВсеТипыId );} }
#2 by ДенисЧ
шо, опять? (с)
#3 by Serginio1
Нет это уже 8 ка. Будь добр вышли SQL резервную копию
#4 by Принт
Alchemy никому не надо?..
#5 by ДенисЧ
А ключ от квартиры, где девки лежат, тебе не выслать? Я тебе уже говорил, что тут это никому не интересно. Заведи себе блошек в свите^W в хабре и там пиши. Кому интересно, его уже читают.
#6 by Asmody
Есть один вопрос: нахрена?
#7 by Serginio1
Для развития. Кстати .Net сейчас вполне кроссплатформен. Так что можешь использовать его и на линуксе и на IOS. А потренироваться лучше на том, что тебе знакомо Спасибо не надо. Я сейчас просто попросил сделать SQL резервную копию, что бы потренироваться.
#8 by ДенисЧ
Кого попросил?
#9 by Serginio1
Всех в топике Большая просьба выложить или отослать архив SQL так как у меня только файловые. Поэтому сделал вслепую. Буду рад если кто протестирует.
#10 by Принт
Может лучше вы к нам?
#11 by ДенисЧ
530ГБ. Высылать на почту?
#12 by ДенисЧ
Неужели так впадлу выгрузить файловую и загрузить в сервер?
#13 by Serginio1
Я выложил   там тестовая база с обработкой. Она ооочень маленькая. Просто её развернуть на SQL и сделать резервную копию.
#14 by Serginio1
Нет у меня сервера приложений.
#15 by ДенисЧ
А зачем тебе тогда резервная копия?
#16 by Asmody
.NET, может быть, с натяжкой, и кроссплатформенный, MSSQL не кроссплатформенный. Но даже не в этом дело. Даже если ты данные прочитаешь, что ты с ними делать будешь?
#17 by Serginio1
Так я её у себя разверну на SQL и протестирую.
#18 by ДенисЧ
Для теста давно бы уже спер из интернета пропатченную...
#19 by Serginio1
Подскажи. Entity Framework 7 вполне себе кросплатформен
#20 by Serginio1
#21 by ДенисЧ
, п.4 Кстати, там же и п. 5
#22 by Принт
А линуксовый дотнет к линуксовому 1С без проблем подключается? Я не в курсе.
#23 by Serginio1
А какой SQL на линуксе Postgre?
#24 by Serginio1
#25 by Гёдза
Это что каждую таблицу так описывать?
#26 by Serginio1
Там обработка все это делает.
#27 by Serginio1
public static object ПолучитьЗначениеНеопределенногоСсылочного(НеопределенныйТип ВладелецId)         {             var НТС=ВладелецId as НеопределенныйТипСсылочный;         public static object ПолучитьЗначениеНеопределенногоТипа(НеопределенныйТип ВладелецId)                 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);         }
#28 by Oftan_Idy
А нахрена это?
#29 by ДенисЧ
"Для развития" Вот только нафига это _тут_ ?
#30 by Serginio1
Денис спасибо, что поддерживаешь ветку. Мне нужна резервная копия. А если знаешь .Net то можешь попрактиковаться в Linq to EF на знакомых данных.
#31 by Serginio1
Ну и понять внутренне устройство БД 1С
#32 by vhl
Ты можешь объяснить что это такое вообще и какую пользу можно извлечь при применении этой технологии?
#33 by Serginio1
Это уже каждый решает для себя. 1. Ознакомление с технологиями Code First 2. Освоение Linq to EF на знакомых данных 3. После изучения первых двух пунктов можно использовать например 3.1 Для ускорения долгих отчетов используя скомпилированный код, кучу нетовских библиотек. 3.2 Для интеграции с системами написанными на .Net
#34 by vhl
Да блин, что такое Code First и Linq to EF - вот главный вопрос!
#35 by Новиков
+1
#36 by Serginio1
#37 by vhl
>Отличительной чертой Entity Framework является использование запросов LINQ для выборки данных из БД. >Другим ключевым понятием является Entity Data Model. >Entity Data Model состоит из трех уровней: концептуального, уровень хранилища и уровень сопоставления (маппинга). Вот спасибо! Раньше было не понятно, а теперь понятно!
#38 by Serginio1
Пойдем для начала Linq to Object
#39 by Serginio1
Вот здесь куча примеров
#40 by vhl
Ты бы по человечески в 2х предложениях описал бы, а не ссылками кидался.
#41 by Serginio1
Тяжело в двух предложениях. Статьи то как раз и написаны, что ввести. Линк это работа с коллекциями по аналогии с SQL только там все типизированно при составлении запроса и получаешь так же типизированный результат. Так как используются ленивые вычисления, ты можешь склеивать запросы. В SQL приходится склеивать строки. При этом нет защиты от ошибов. В Linq уже на этапе программирования тебе покажут ошибки. С Linq намного удобнее работать чем с SQL.
#42 by vhl
Можешь привести итоговый пример работы? Пусть даже в теории. Как это будет выглядеть в конечном счете?
#43 by Serginio1
Я в этой теме кучу примеров приводил
#44 by Serginio1
Олег огромнейшее спасибо!
#45 by Serginio1
Если у кого есть 2012 SQL просьба развернуть тестовую базу и выслать резервную копию
#46 by Гёдза
почему сам не можешь то?
#47 by Гёдза
Попробуй на linq написать виртуальную таблицу остатков. Даже без оборотов хотябы
#48 by Гёдза
Или срез последних
#49 by Serginio1
Нет у меня Сервера приложений. Но у меня есть резервная копия. Сейчас express новый разверну. Здесь уже показывал Да там без проблем написать. Два запроса объединение и группировка. Я уже показывал, что возможностей Linq даже больше чем в 1С языке запросов кроме пакетов и временных таблиц
#50 by Serginio1
Обновил файлы. Наткнулся на забавную вещь. В 1С Есть свойства неопределенного типа которое состоит из нескольких полей. В Code Firs есть атрибут ComplexType    public partial class Тестовый : СправочникПредок     {         public partial class НеопределенныеТипы         {             [ComplexType]             public class ЛюбаяСсылка_Fld19 : НеопределенныйТип, НеопределенныйТипСсылочный             {                 [Column("_Fld19_TYPE")]                 [MaxLength]                 override public byte[] Тип { get; set; }                 [Column("_Fld19_RTREF")]        }   } public partial class Тестовый : СправочникПредок     {         public partial class ТЧ         {             public partial class НеопределенныеТипы             {                 [ComplexType]                 public class ЛюбаяСсылка_Fld52 : НеопределенныйТип, НеопределенныйТипСсылочный                 {                     [Column("_Fld52_TYPE")]                     [MaxLength]                     override public byte[] Тип { get; set; }                     [Column("_Fld52_RTREF")]             }         }     } Есть поле в разных типах ЛюбаяСсылка, но в базе все названия [ComplexType] должны быть уникальными. Поэтому добавляю номер таблицы для неопределенных владельцев и номер поля для неопределенных полей
#51 by Serginio1
Выложил статью
#52 by quest
ссылку поправь
#53 by Serginio1
#54 by Serginio1
Выложил практику использования
#55 by Serginio1
Кстати посмотрел на просторах интернета, что то не нашел описания подключения к ODATA. На той тестовой конфигурации опубликовал ODATA Установил справочники Затем в VS Добавить ссылку на службу Получаем описание классов доступ к кторым через var uriString = @";;             var context = new ServiceReference1.EnterpriseV8(new Uri(uriString));
#56 by Serginio1
Кстати есть и поддержка JSON var uriString = @";;             var context = new ServiceReference1.EnterpriseV8(new Uri(uriString)); Генерирует такой запрос GET HTTP/1.1 User-Agent: Microsoft ADO.NET Data Services HTTP/1.1 200 OK DataServiceVersion: 3.0 Date: Tue, 29 Sep 2015 08:29:46 GMT { "odata.metadata": ";, },
#57 by Serginio1
Ну и соответственоо вызов определенного элемента Можно применять фильтры             var query = context.CreateQuery<ServiceReference1.Catalog_Тестовый>(@"Catalog_Тестовый")                          .AddQueryOption("$filter", "Число le 100");
#58 by Serginio1
А можно и так           var  result = (from Тестовый in context.Catalog_Тестовый
#59 by Serginio1
Выложил статью Linq To ODATA
#60 by Адинэснег
#61 by Serginio1
Зачем 1С применяет ODATA? Зачем Linq к ODATа, а затем что это намного проще чем работать с нетипизированными структурам, задавать условия как в нормальных запросах полностью абстрагируясь от механизмов ODATA и программируя привычно используя объекты и Linq
#62 by Serginio1
#63 by Гёдза
Бессмысленно задавать ему такие вопросы. Он не понимает
#64 by Serginio1
Эх тупой я
#65 by Гёдза
Да не тупой, просто твои ковыряния в песочнице никому не понятны
#66 by Гёдза
Собственно эта ветка подтверждает (да и на ис тоже) что кроме тебя это никому не нужно
#67 by Cyberhawk
У меня скуль 2012 есть, если че-то еще надо - стучи в асю
#68 by Serginio1
Огромное спасибо. Уже решил проблему. Поставил у себя SQL 2014 Express
#69 by Dmitry1c
Ух какие же вы извращенцы
#70 by Serginio1
Спасибо. А то в одной миссионерской позе (1С) совсем надоело. Хочется, чего то возвышенного
#71 by Мефистофель
почему не на ява? в качестве первого проекта на ява хочу реализовать объекты 1С :)
#72 by Serginio1
У Явы есть ограничения например для использования сборок А что касается Linq в явеЮ то он разве есть?
#73 by Serginio1
Ошибаешься. Уже один человек нашелся Смотри комментарий Во!
#74 by DDwe
О, целый один комментарий. Прогресс. И все-таки вопрос - на ...что всё это?
#75 by Гёдза
Лучше пиши минисклад на спринг+хибернэйт
#76 by Serginio1
Зачем? У меня кроме этого забот хватает и на 1C,C#,JS. А Linq это отдушина, в свободное от работы время. Понимаешь многие программисты изучают не только 1С. Некоторые хотят расширить свой кругозор, понять новое и использовать свои знания, когда появится возможность. Я так и делаю. Но мне приходится кучу информации искать. И тем кому это вдруг понадобится,  я рассчитываю, что мои статьи помогут ему во многом разобраться. А помощь в прогрессе это и есть смысл жизни.
#77 by DDwe
Т.е всё, что ты причислил к 1С не имеет ни какого отношения? Тогда зачем ты завел тему здесь?
#78 by Serginio1
Как это не имеет? Это как раз доступ к данным 1С из программ написанных на .Net
#79 by Serginio1
Мало того используя ты можешь использовать нетовские сборки в 1С
#80 by DDwe
Что такое нетовская сборка? Сборка чего?
#81 by DDwe
И зачем мне доступ к 1С из программ написанных на .НЕТ?
#82 by Лодырь
Тебе не нужна, успокойся. Мне нужна.
#83 by DDwe
А Вам зачем?
#84 by Лодырь
Из 1С я расширяю возможности. Из внешних систем имею возможность прямого доступа к данным 1С.
#85 by Serginio1
Да здесь полно веток, где мне это не нужно. Но я не захожу в них и не кричу "А нафига". Есть полно узкоспециализированных задач, с которыми среднестатистический  1Сник никогда и не сталкивается, а другие с этими задачами связаны постоянно. Информация не бывает бесполезной.
#86 by Serginio1
Спасибо за поддержку.
#87 by Гёдза
Это вообще-то нарушение лицензионного соглашения
#88 by Serginio1
ODATA? И к 7.7 нет нарушения
#89 by Гёдза
к одата - нет, напрямую к скл - есть
#90 by Serginio1
В 7.7. Приводи. Все 1С++ пользуются и не жужжат. Да и к 8.3 как обслуживать базу, восстанавливать после неудачного динамического обновления итд.
#91 by Гёдза
Тебе выдержку из лицензионного соглашения привести что ли? В 77 кстати не было такого )))
#92 by Serginio1
Я про 7.7.
#93 by Гёдза
п. 65
#94 by Serginio1
92+ Так как ты в 89 в ответ на 88 утверждал, что для 7.7 SQL есть. Показывай.
#95 by Serginio1
И где там 7.7?
#96 by Гёдза
Где я утверждал про 77?
#97 by Serginio1
Да так как ты дал свой ответ на 88 в которым русккими словами написано ODATA? И к 7.7 нет нарушения Кстати а дай выдержку по 8.x я чёт о не найду
#98 by Serginio1
97+ Спасибо нашел пункт 65. Внимательней читать нужно.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С