Комментарии 216
программистом 1Схз, но как по мне эти два слова рядом не сочетаются
З.Ы. — но вообще так толсто, что даже не смешно
Но таких, увы, нету. Поэтому и есть желание написать «Убийцу 1С».
Можно просто открыть глаза и увидеть, что альтернативы 1с для разработки бизнес-приложений просто нет.
А кто они тогда?
Ученый, который кодит на python — все равно ученый, потому что зарабатывает он не программированием (это не основной вид его деятельности).
А у одинесника — программирование основной. Они с этого живут. И то, что язык у них специфический ничего не меняет.
Зы. Если кто-то пишет на экселе макросы на продажу, то он тоже программист.
Чего нет и близко? Структур данных?
1С очень богата на различные коллекции.
Алгоритмов?
Что мешает применять обходы ДереваЗначений по алгоритму, а не в Выборке результата запроса по группировкам? (Которая делается за секунды через типовой конструктор).
Парадигм программирования?
Начните хотя бы со стандартов.
У Вас 17 лет опыта в 1с? А что вы написали?
И то, что язык у них специфический ничего не меняет
Ну как Вам сказать…
Поверьте человеку, который писал парсер и исполняющую машину "языка" 1С 7.7 (и оно даже работало) и даже начал 1С8 (как оказалось разница несущественна) в рамках проекта "1L" (была такая попытка сделать "open source 1С"): "язык" 1С — это не ЯП в классическом смысле.
Можно сказать, что это навороченнейший обвес костылями вокруг макросов 1С 6.0 (если не 2.0).
Синтаксис совершенно другой, но суть от этого не изменилась даже в 1С8.3.
Если не верите — постройте дерево разбора языка и попытайтесь хотя бы представить — как вы это будете исполнять.
И поймете, что 1С писали наркоманы не-программисты.
Да, это некая последовательность набор (не факт, что последовательный) действий, записанный буквами в том числе.
В результате делающая задуманное (чаще всего).
Но назвать это ЯП лично я стесняюсь.
Назвать программистов 1С программистами… Ну не знаю, честно говоря.
Там настолько иная логика, что лучше говорить "программисты" и "программисты 1С" отдельно.
А то и те и другие обидятся.
Прошу внимательно — я не пишу "язык 1С плохой" или "язык 1С лучше всех".
"Писал" на/для 1С по нужде начиная с той же самой 2.0. Как и на куче классических ЯП.
Оно не лучше и не хуже. Оно — иное.
И к классическому программированию имеет очень опосредованное отношение (как правильно заметил товарищ выше).
.Net-овский OneScript не только строит дерево разбора и выполняет его. Есть даже реализация LanguageServer для языка 1С (BSL).
1С это полноценный язык. Да, он не очень гибок и в нем есть свои минусы. Например медленный интерпретатор. Доходит до того, что сложные вычисления пишутся в SQL запросах, например решение линейных уравнений при расчете себестоимости. Но я думаю что интерпретатор можно ускорить, когда я делал аналог языка 1С его скорость была в 20-40 раз быстрее.
Вообще программист — это способ мышления. Ты или умеешь создавать алгоритмы или ты не программист. И кстати говоря я знаю много программистов, которые работают программистами 1С, а в качестве хобби имеют проекты на С/C++, Node.JS и т.д.
Вообще программист — это способ мышления.Золотые слова!
Я писал транслятор-компилятор в своем проекте «2С»
Я хорошо помню 2С (и Вас, vtools, тоже очень хорошо помню). Отличный транслятор и отлично работал ~95% (или около того) синтаксиса 1С7.
Но Вы там обошли буквально пару-тройку конструкций, которые наглухо ломают моск любому нормальному транслятору (потому и обошли, насколько я помню).
Буквально пара-тройка. НО — из-за этого полностью автоматическая работа с обновлениями 1С пошла по… как это будет по-русски… нехорошо получилось, в общем.
А там эта "пара-тройка" как раз определяют всю внутреннюю логику движка 1С.
Который не может работать скомпилированным, ага. Только интерпретация. Причем только по ходу пьесы.
Так что да — там совершенно другой способ мышления.
Может быть вы про Контекст (глобальный), но это все равно ложится в парадигму объектной модели.
Главное не путать понятия "программист" и "инженер программного обеспечения". В силу специфики применения 1С, на нем очень мало именно инженеров.
Хотя, надо признать, с модным движением "войти в ойти" сейчас действительно мало толковых инженеров вообще везде.
принцип KISS в программировании еще никто не отменял.
ООП ради ООП? Зачем?
Не сразу понимаешь, что Документы.ПТиУ это класс. Модуль менеджера — модуль класса. Модуль Обьекта это модуль экземпляра класса.
Мы просто ограничены Метаданными.
Эти принципы в 1С редко кто применяет, поскольку заказчик, который ставит задачу разработчику, говорит примерно следующее: "я не программист и в этих ваших делах ничего не понимаю, но мне нужна кнопочка, которая распределяет счёт затрат, проводки должны быть такие-то". И вот, у этого разработчика выбор: потратить неделю на изучение конфы и переиспользовать код или сляпать что-то сбоку как-нибудь не задумываясь ни о технологических принципах ни об эффективности.
На Питоне или еще на чем — все делается сложнее, чем в 1С.
Независимо от производительности.
А потом бедный клиент будет искать, кто вашу нетленку будет сопровождать.
А если серьезно, то сколько технологий Вы основательно попробовали в промышленной разработке, чтобы делать заявления, что есть только 1С и больше ничего?
видел живьем нетленку, где формы писались на VB6 (2003 год) для MS-SQL (хлебный завод).
Видел автоматизацию на Access.
Тиражируемых нетленок не встречал, там как минимум надо писать обновление структуры БД.
Писал бизнес-аппликации на таком стеке + разнообразные бэкенды — один раз делается «шаблон», к которому уже добавляется нужное количество форм.
Понятно, что можно все реализовать в виде сайта PHP+MySQL, но это как-то чрезмерно. Хочется ваше видение понять.
Технология взаимодействия клиента и сервера — REST, все остальное сильно зависит от ваших предпочтений, существующих у заказчика систем и так далее.
Остальное можете нагуглить, персональное обучение — стандартная ставка в наших краях $100 в час.
при ping 49ms тормозит нещадно.
Райзен, 32ΓБ, Ubuntu 20.04
Не знаю норм это или нет, но бухи
глаз на глаз натянут за такую скорость.
Вот возьмём, например, «Теоретический минимум по Data Science» за авторством В.Ф.Фило. Хоть что-то из этого то там написано нужно в прикладной работе? Обычно нет, а если и нужно — то уже реализовано в том или ином виде в библиотеках.
Иногда возникает ощущение что большая часть ноющих на недостатки тех или иных систем учились с ними работать по наитию, а потом им в руки попадает вузовский учебник и тут начинаются Открытия…
Просто у них очень… Специфическое видение ООП!
Если ты пытаешься решать задачи машинного зрения или автоматизировать умный дом на 1С (потому, что 20 лет на нем пишешь и больше ничо не умеешь) — у меня для тебя плохие новости…
Но если тебе нужно автоматизировать РСБУ, складской учет или расчет Зарплаты, а ты делаешь это на
И кстати 8.3 — это тонкий и веб-клиент, декларативное описание интерфейса, фактически SQL-синтаксис запросов к БД (с поправкой на русский язык, что, впрочем не обязательно — можно и натурально SELECT * FROM ...), web и http-сервисы, ODATA и прочие прелести…
А еще (я так не в восторге с этого, но видимо что бы стереотипы сбить!) это в принципе eclipse и git
А если вас уж так коробит с русского языка в текстах программ — пишите на английском, какие проблемы? ) Там это можно прям в одном модуле… Правда коллеги, которым потом с этим кодом возится, вам спасибо не скажут, но… Это не к платформе вопрос, а к принятым методикам. Там простор для холливаров — факт!
программист выбирает язык под задачу
Не согласен.
Вот задача: Написать личный кабинет клиента, где он будет выбирать товары из прайса, заполнять заказ, и отслеживать его статус. Заказ пушится в некую условную ERP.
Ну допустим, фронт пишем на JS. Но постойте! На реакте, ангуляре, или вью?
Далее, бэк. PHP, Python, Java, C#, Go, Rust, C++,…, или 1С?
Выбрал программист язык?
Ответ: программист пишет на том языке, на котором его наняли писать; на котором у текущей команды максимальная компетенция; на том, который относится к стеку, принятому в данной компании за основной.
Да и не даст никто фронтенд программисту задачу писать драйвер для железяки. Или жесткому плюсовику рисовать приложуху на свифте для расчета калорийности еды.
Программист выбирает не как в ресторане: «На каком бы мне языке попрограммировать сегодня, что-то я давно ruby не ковырял!». Естественно у каждого программиста есть некий профиль, в котором у него больше всего опыта и как правило его основная работа связана с разработкой определенного спектра приложений, для которых этот профиль наиболее подходит. НО!
Если ваша основная работа связана с забиванием гвоздей молотком и вы прекрасно это умеете — это не значит, что, случись с вами необходимость закрутить шуруп — вы возьметесь за молоток, не так ли? ;)
Ну вот я, например. Моя работа, которой я зарабатываю на жизнь — это 1С. Однако не работой единой, так сказать… На досуге я ковыряю AI, VR и всякую мелкую автоматизацию (игрушечных роботов, например!). Поэтому я беру Python, Unity и Arduino!
Да — можно возразить, что мол будь я плюсовиком, я мог бы все это делать на C++ (TensorFlow, UI4, AVRStudio). Но… На самом деле «язык программирования» — это вообще не то! Что такое язык программирования? Синтаксис? Который в большинстве случаев влезает на пару листов формата А4 и учится за пару дней? А с современными IDE с контекстной подсказкой — так и учить особо не надо…
С другой стороны в наше время иногда проще написать решение вычислительной задачи, на языке, который ты первый раз видишь, чем постигнуть последнюю версию фреймворка, с которым ты вполне нормально работал год назад!
Вот поэтому, меня прям бомбит, когда кто-то делает вывод «программист-не программист» на основе такой абстракции, как
>>> Ответ: программист пишет на том языке, на котором его наняли писать; на котором у текущей команды максимальная компетенция; на том, который относится к стеку, принятому в данной компании за основной.
Вот! Т.е. на каком НАДО — на таком и пишет! Правильно? А не то что: избрал себе один язык — и на всю жизнь…
Блин, я думал, ты звезда. Вон даже нимб вокруг башки. Думал, деньги лопатой гребёшь. А тут 120 тысяч всего. Всё очень плохо в 1С с заработками ((
Ну, фри это интересно.
У 1С имеюся такие задачи и конфигурации один физически не осилишь, только команда.
Остается вопрос с кругом задач их объем и предметная область. Вот и ставка от этого складывается. Моя скачет от 1600 до 4000.
Какие задачи решает, не знаю, но по уровню я его вроде как выше. Судя по тем задача, которые он там решает.
ну Леонтьев утверждает, что в одно рыло с 6 клиентов имеет по 2.500 за час.
Хак в том, что говоришь час 1500, а берешь 2500, так работают почти все франчи, странно что ты это не заметил.
При таком демпинге и ситуации с развитием бизнеса как сейчас, за 2500 найти практически не реально, хотя я знаю, что ты крут и 2500 нормальная ставка, даже маловато будет. Но реальность такова, что хороших контрактов мало и обычно достаются они или знакомым или за откаты или тем кто может закинуть лапшу на уши баблоноса с закрытыми глазами и связанными руками.
Ну или сразу озвучиваешь сумму за работу, говоришь стоить будет столько-то, по часам не работаю ( давно так уже делаю, но правда у меня в основном проекты с интеграциями и там не всегда есть 1с, но думаю разницы нет особой )
Еще помогает выбрать определенную специализацию в учете. Например, у многих компаний нестандартные бизнес-процессы на складах и при расчетах с клиентами. Умение быстро решать такие задачи позволяет повысить свою конкурентоспособность и повысить ставку.
2,5 за настройку Ерпа, перенос остатков и начало работы… Это мало?.. или собрать бюджеты формы...
Леонтьев может что угодно утверждать. Ты его акты подписанные видел?
Уверен это было нелегко и рад, что все получилось. Люди на зп редко могут оценить насколько меняется жизнь, когда начинаешь работать в режиме ненапряжного фриланса.
Спасибо за статью!
Подскажите, как вы считаете ёмкость рынка 1С, есть ли развитие в других странах?
И почему компании выбирают франчайзи, или какая сейчас тенденция, особенно за 2020?
Начали ли компании, больше смотреть в сторону фриланс сотрудников?
Все зависит от работ. 1С если брать разработку учетных системы охватывает разброс использованит от 0,5 пользователей до 1000 и более. Итого функциональность и сложность работ. Соотвествеено некоторые работы физически фрилес не сможет выполнить (по срокам к примеру).
Рынок в других странах, хорошие перспективы. Платворма позволяет быстро реализвывать разного уровня задачи. Все упирается в маркетинг)
По сути — силен! Удачи.
Ценники у вас в 1С, конечно, низковаты… Ну да в 40+ уже реально трудно свернуть на другую дорожку. А насчет «фриланс», «проектная занятость» и вот это все — все там будем, имхо, вопрос только времени, и — недолгого.
Так что, те айтишники, что суетится уже сейчас — просто предусмотрительные люди.
Ну и повышенный личный комфорт тоже никто не отменял.
я по сути хочу финансовой свободы а не новых граблей, только в виде другого языка программирования.
Во-первых, фриланс моментально развеивает самонадеянность типа «я крутой специалист» — это, оказывается, далеко не всегда так. Даже если на работе платят отличную зарплату.
Во-вторых, быть специалистом — для успешного фриланса мало. Нужно много чего еще, и это «еще» не так уж часто встречается.
Так что неудачников на этом пути — хватает.
А еще больше я знаю тех, кто хочет (этой свободы). Только хочет, годами. И все.
95 кг на 3 в жиме лёжа — это очень неплохой результат, как для такой комплекции.
Возможно не язык. У 1с хорошее средство разработка для определенных задач. Цена/ качество. Кто может похвастать простотой написания, одновременно: десктоп/Веб/ мобайл. Да и вход простой т.ч. изза русского языка.
У индусов есть похожее, ноо опятьже описание и документация дополняет сложность в изучении
Если у человека есть программистский бэкграунд, то две недели курсов (8 часов * 5 дней * 2 недели) дадут ему первое понимание о программировании, но я думаю, что даже нужно 3-4 недели курсов, чтобы освоить только платформу. Я, помнится, неделю только на управляемые формы ходил, там был очень быстрые темп, еле поспевал. И то, потому что на 8-ке кодил ранее на обычных формах, въехал о чем речь.
Если что я 13 языков в БГУИР изучал, включая С, С++, Asm, Пролог, Лисп и не вижу, почему 1С это не язык. Это язык, похожий на Бейсик.
это от понтов или не компетентности в вопросе?
Снобизм, незрелость, ЧСВ от причастности к «настоящему ЯП», которое подпитывает сравнение з/п на hh.ru.
Интересно, что в качестве примера приводят java, в которой надо примерно в 30 раз больше кода, чтобы в итоге получилось аналогичное 1Сному веб-приложние, и как по мне, с java надо немедля валить на scala, как только подвернется возможность.
Причем, я помню времена, когда был дешевый бакс, и у меня получалось на 1С нашакалить в МСК 15-20 тысяч долларов за месяц (хотя это не очень долго продлилось). Так это еще и чистыми на руки, на которые я дом построил, а не как щас в Дойчленде 60-70К евро в год «зарабатывает», и 90% назад отдают на налоги, аренду, еду и прочее, не отложив за год практически ничего.
Большинству «настоящих программистов» сейчас в 2020г. покажи даже половину от такой котлеты, они тут же бросят свою погремушку и выстроятся в очередь на курсы 1С.
Сразу после универа в начале 2000 также ушел полностью на фриланс (тогда это так ещё не называлось). Тоже работал полностью напрямую, экономил кучу неприятностей, типа обмана со стороны работодателя, невыплаты процентов если сумма получалась большая.
Проблема, я в 23 года не занялся разработкой новых клиентов, так как работы была куча и летом прочно сел на мель, так как летом все в отпуске и работ по 1с не было вообще.
К чему я это: планируйте подушку безопасности и работайте с новыми клиентами, даже если все выглядит ок.
Переходите на следующий уровень в 2021 — создание собственных продуктов с высоким содержанием интеллектуальной собственности. Заказы заказами, но результаты должны как-то накапливаться не только в виде опыта.
Ну и еще я свалил в digital-маркетинг, и работаю на фирму в которой являюсь соучредителем. К психологам не обращался, а может зря?
Может, конечно, кому-то нравится работать в 1Совской недо-IDE (по сравнению, с IntelliJ IDEA) в процедурном программирование НаРусскомЯзыкеВСтилеПриветДевяностые… Но дальше будет еще хуже, так как не особо видно перспектив российского рынка, и при дальнейшей девальвации разрыв в зарплате с тем же аутсорсом будет только нарастать.
1С есть во всех компаниях.
Нельзя же просто девальвировать знания ради коньюнктуры?
Курс доллара должен влиять на выбор инструмента? Я вас умоляю, это преходяще.
Будете гоняться за баблом — не споймаете зайцев.
Посчитайте убыток за те два года, что вы будете расти с Юниора до Сеньора в Джаве и что потом? Надеетесь на мифические зарплаты? Так там фриланса нет, только в корпорациях и вас там будут жестко иметь. 1с — это о свободе.
Курс доллара должен влиять на выбор инструмента? Я вас умоляю, это преходяще.
От курса доллара сильно зависит соотношение зарплаты работающих на мировую и российскую экономику. А пока у власти в РФ сами знаете кто, движение только вниз.
Посчитайте убыток за те два года, что вы будете расти с Юниора до Сеньора в Джаве и что потом? Надеетесь на мифические зарплаты? Так там фриланса нет, только в корпорациях и вас там будут жестко иметь. 1с — это о свободе.
В деревне, в которой я живу, уже имеют 150К рур на нормальных технологиях уже через 2-3 года (и зп привязана к доллару). Дальше может быть в разы больше (зависит от способностей). Постите в LinkedIn, что ищите работу и есть опыт, и у вас не будет отбоя от HR. И каждая компания предлагает как минимум свободный график, возможность работать удаленно, соцпакет и много чего еще (стартапы еще и опционы). И относятся к сотрудникам как к главному активу компании.
недо-IDE
Мне когда-то вполне хватало Colorer+Far для программирования, а до этого был ASM на листочках с ручным переводом в коды по справочнику, ибо компа не было вообще, а там где он был не было даже редактора. Поэтому, когда сообщают, что IDE им мешает программировать, я просто не понимаю о чём речь.
Конфигурирую 1С, пишу запросы так же как в MS SQL — без констуктора и стандартыми скульными операторами, товарищи научены не ломать понапрасну это дело, ибо мои запросы для них запредельной сложности, хотя ничего сложного в них нет. Я бы сказал, что 1С это отличная система (есть опыт в C#+ WnForms + MS SQL), я просто тащусь от встроенных механизмов сравнения/обновления конфигурации и отладки. Ну а когда я, через много лет, открыл для себя Ctrl+T, то я был просто счастлив.
Может, конечно, кому-то нравится работать в 1Совской недо-IDE (по сравнению, с IntelliJ IDEA)Серьёзно? IntelliJ IDEA это очень тормозная штука, по сравнению с 1С IDE… Ну а если честно, то в 1C IDE есть всё что нужно для работы, какой смысл вообще её обсуждать: если вы не можете писать код без рюшечек, то вы — не программист, а начинающий джун, который думает, что бы такое выбрать и куда бы податься.
Имхо, основной недостаток 1с в закрытости системы. Нет, прикладной язык открыт. Но платформа жёстко закрыта.
А система всё сильнее развивается. Порог входа растет. И вендор не успевает за прогрессом.
Сделали расширения. Неплохо. Но ошибок куча. Просят сделать более управляемые индексы в базе — идите лесом. Недавно выкатили функции в запросах, которые вроде бы есть в каждой СУБД.
И вот, понимая это, уже вендор развивает не конфигуратор, а EDT, не хранилище конфигураций, а git.
Мое мнение следующей большой версией будет система на инфраструктуре Java. Возможно со своим языком.
Извините за оффтоп.
Имхо недостатки в мягкой политике к легаси-пользователям.
"Мы думали на что перевести ПолеHTML в 2019 году, и так как у нас ещё много пользователей на WindowsXP, то мы перевели на webkit v2."(В то время когда основные браузеры уже перешли на blink)
Или ограничения диалекта SQL чем продиктованы? Поддержкой файловой версии…
Всякие FOR XML (который позволяет формировать вебстраницу в запросе), Graph hierarhy и прочие вкусности пролетают.
По поводу файловой версии не понял. Так это вообще их внутреннее детище. Уж там точно внедряй что хочешь.
И по поводу ПолеHTML можно было реализовать ОБА варианта.
Гораздо эффективнее было бы отдать такие вещи в открытое сообщество как раз
Реализация "оба варианта" приводит к поддержке "оба варианта".
А это ресурсы.
"А экономика, товарищи, должна быть..."
И я о том же. Система давно уже выросла из макросов, доступных рядовому бухгалтеру. Вендор уже не тянет по всем фронтам одновременно. Хорошо хоть потихоньку начинает переходить на современные технологии.
Но очень неохотно...
git — только завозят
юнит-тестирования — нет
расширяемость плагинами конфигуратора — нет
в расширениях напрочь отсутствует автоподстановка
в языке:
ленивые вычисления — отсутствуют
работа с объектами ТОЛЬКО через строки — этого зато полно
унификации интерфейсов коллекций — нет
язык запросов — слабый SELECT
и довольно спорное решение, когда в одной колонке таблицы в разных записях может встретиться ПустаяСсылка, Неопределено и NULL
механизм исключений — довольно слабый
освобождение внешних ресурсов — не контролируется
Механизм исключений развили. Совсем недавно.
и довольно спорное решение, когда в одной колонке таблицы в разных записях может встретиться ПустаяСсылка, Неопределено и NULL
Отличное решение, вы, видимо, просто не понимаете систему типов, вас же не смущает, когда одновременно в колонке «пустая строка» и Null?
Вот сам по себе Null, объясняется, зачастую очень спорно, потому что «отсутствие данных» и «неизвестные данные», это две очень разные сущности. В большинстве случаев Null используется именно как «данных — нет», что совсем не означает «значение по умолчанию».
У вас есть составной тип, который может быть типизирован или не типизирован, у него есть подтипы, например, ссылочный тип, а значение по умолчанию — Неопределено (у подтипа «пустая ссылка»). так по какой причине вы хотите значение по умолчанию (неопределено), вместо «данных нет»?
А все эти навороты с кучей пустых типов мне непонятны, хотя я разбираюсь в этом (надеюсь).
Посмотрите чему равен Артикул а запросе в справочнике Номенклатура у группы в какой-нибудь типовой конфигурации. Ну это так, чтобы просто не думали, что NULL только в соединениях бывает.
Помнится как внезапно с выходом очередной платформы сменился тип у полей Субконто таблиц регистров бухгалтерии, если у счета нет такого уровня субконто.
Другой случай, когда пользователь выбрал конкретный тип у реквизита составного типа, но сам реквизит не заполнил. Записалась пустая ссылка. Пришлось искать в чем ошибка. Оказалось, что логика была рассчитана на Неопределено.
Есть и обратный пример, где в скидках при незаполненном измерении система подставляла ДоговорыКонтрагентов.ПустаяСсылка. Почему именно ее из нескольких выбрали и почему не Неопределено?
Наконец представьте себе, что у вас есть таблица с простым ссылочным типом и вам в логике нужен запрос, отбирающий заполненные данные. Я думаю там будет условие что-то типа Реквизит<>ЗНАЧЕНИЕ(ТипЭтогоСамогоРеквизита.ПустаяСсылка)
Что произойдет, когда тип расширят до составного? Логика нарушится.
Мне кажется живых примеров достаточно.
А вот если был бы ТОЛЬКО один NULL, как в большинстве промышленных СУБД — таких проблем бы не возникало.
А все эти навороты с кучей пустых типов мне непонятны, хотя я разбираюсь в этом (надеюсь).
Вам просто надо посмотреть на какой-нибудь язык со строгой типизацией.
Есть и обратный пример, где в скидках при незаполненном измерении система подставляла ДоговорыКонтрагентов.ПустаяСсылка. Почему именно ее из нескольких выбрали и почему не Неопределено?
В регистрах на измерения есть галочка «запрет не заполненных значений», в MS SQL в типах колонок есть «not Null», конкретно в вашем случае — мне не достаточно информации, но всему есть объяснение.
Но раз речь о запросе, то скорее всего, составной типы был только ссылочным и отсекли все таблицы других типов «where значение ссылка наштип» и приведение значения в select Значение() позволяет составной тип усечь до простого, отбросив все джойны с другими таблицами.
Что произойдет, когда тип расширят до составного? Логика нарушится.
А что произойдёт, если изменят простой ссылочный тип? Вообще «тип расширят», это неправильное понимание, это составной тип расширяется подтипами, а простой тип — заменяют.
Изучите любой простенький язык со строгой типизацией, например Pascal, просто, что бы понимать, что происходит.
Например:
переменная простого типа:
a: ^byte;
составного:
myvar = record// Ещё нужен признак, какое значение выбрано, но это уже детали.
a:^byte;
b: Неопределено;
end
Как видите, никакого расширения нет, это совершенно другой тип, и присвоить в myvar.a = неопределено, вы тоже не можете, а когда вы делаете myvar = 5 или myvar = неопределено, то это просто синтаксический сахар. В реальной реализации, разработчики платформы, в теории, могут даже совместить эти данные в одну переменную, так же как пустую ссылку считают нулём урезая пространство ссылок, но идеалогия именна такова как на иллюстрации.
И отдельно MS SQL, это будет не сложно, поскольку вы его уже почти знаете, но структурирует ваши знания в этой области.
А вот если был бы ТОЛЬКО один NULL
Ещё раз: неопределено, это конкретное значение, исключите составные типы из 1С полностью и ваша мечта исполнится.
«запрет не заполненных значений», в MS SQL в типах колонок есть «not Null»
Это несколько разное. Стоит в 1С галка или не стоит у измерения, но там уже «not Null» всегда. Галочка эта не поможет — туда нельзя будет незаполненные значения записывать, а это надо делать. Да, так или иначе можно всегда перед записью проверять и все пустые ссылки превращать в Неопределено. Но «из коробки» такого решения нет и типовые продукты этим тоже не заморачиваются вроде бы.
А что произойдёт, если изменят простой ссылочный тип? Вообще «тип расширят», это неправильное понимание, это составной тип расширяется подтипами, а простой тип — заменяют.Ну да, только колонка с простым типом это колонка в описании типов которой он один. Не кажется, что это всего лишь частный случай одного и того же?
В своем примере вы не аналогичный пример поставляете. У вас тип-произведение. То есть одно поле вы заменяете двумя. Мы же говорим про тип-сумму, который остается одним полем, но расширяется.
Пример из языка (c#, в delphi такое тоже это есть):
1. Было:
class Foo{}
//...
Foo x = new Foo();
Foo y = null;
2. Стало:
interface IFooBar {}
class Foo:IFooBar {}
class Bar:IFooBar {}
//...
IFooBar x = new Foo();
IFooBar y = null;
Тип переменных x, y расширили. Но они могут также принимать прежние значения. Вот это и есть ближайший аналог составного типа 1С. При этом y как принимала значение null как пустая ссылка, так и принимает. Никаких новых пустых ссылок система не привнесла.
Можно сколько угодно говорить про Неопределено в 1С — что это конкретное значение, а пустые ссылки — еще более конкретные значения. Но все это софистика, на мой сугубо субъективный взгляд.
Жить с этим можно, но принцип бритвы Оккама нарушен.
Теперь возьмите запросы, где соединение будет по полю составного типа, всё это на SQL ляжет как НЕСКОЛЬКО соединений ко всем таблицам (простым типам) входящим в составной. И аналогичным образом, что бы подсказать 1С что эти соеднинения можно отсечь недостаточно будет просто отсечь их через «where полесоставноготипа ссылка простойтип», надо будет ещё показать, что тип в выборке мы составной не хотим, то есть select Значение(полесоставноготипа как поле простоготипа).
Такой иллюстрации вам достаточно?
P.S.
Да, так или иначе можно всегда перед записью проверять и все пустые ссылки превращать в Неопределено.
И ещё раз — нет! Неопределено, означает, что простой тип не был выбран, но переменная тип имеет (составной тип). То есть мы имеем тип, который может содержать только яблоки ИЛИ груши либо ни то ни другое и ничего более. Одновременно содержать яблоки и груши он НЕ МОЖЕТ. Когда там будет Яблоко.ПустаяСылка, это значит что у нас формат содержания — яблоки и их там нет. Если формат содержания ни яблоки ни груши, то это и обозначается как Неопределено. Неопределено, означает, что ни тип яболок не был выбран, ни тип груш, поэтому у нас не могут быть никакие значения, в том числе пустые, этих типов.
Я например, привел примеры ошибок и сомнительных архитектурных решений, созданные так или иначе:
— на уровне платформы
— на уровне прикладных типовых решений от вендора
— в работе прикладного программиста, адаптирующего решение
При выборке по иерархическому справочнику в поле составного типа, вы хотите Неопределено, в качестве группы, для элементов не лежащих в группе?
И да, вот посмотрите, что представляет собой составной тип Ссылка, обратите внимание, что составной тип не может содержать составной тип.
проблема 1с только в проприетарности
1с конечно в один момент не заколотит двери.
Но если представить что можно отмотать 10 лет назад, я бы точно не стал вести учёт склада в 1с.
Что говорить про новые версии той же нетленки, которым лет 5 или 10?
Да, 1С есть везде — для налогового учета. Доля охвата — максимальна, под 100%, даже у самых богатых контор с САПом есть, это верно. Но вот работать реальную работу в ней
Как человек, который когда-то в полях сталкивался с поддержкой 1С лично, скажу: и слава богам! При всем моем уважении к тем святым людям, кто все же сумел перебороть себя, и избавляет лично меня от общения с этим монстром :-)
А я буду продавать нетленку. И — да, платить 1Сникам, ведь мне тоже надо заплатить налоги, подать отчетку в ПФР, etc.
Скорее микро сервисы под конкретные задачи, где то готовые узкие решения, где то самописки.
А вообще по факту прям в Notepad списком
Софт 1с это сначала «Создаём проблемы» потом «Героических их преодолеваем».
Про микросервисы давайте конкретно.
Нет мелких задач, есть задача автоматизации предприятия.
Кто если не 1С?
Что такое автоматизация процессов я знаю прекрасно. Сам работаю в это сфере. И есть реальные кейсы при внедрении которых добились перераспределения труда в компании, более чем у 80 человек убрали ручную задачу, компания более 500 человек, сектор ЖКХ.
Почему вот это нельзя назвать автоматизацией?:
Собственник ведёт остатки в таблицах google, yandex, как вариант свой nas.
На почту приходит чек от онлайн кассы при покупках, «самописная обработка» или что то готовое, вычитает из нужного остатка.
Порог снижения товарного остатка проверяет «самописная обработка» или что то готовое, в случае необходимости напоминает о необходимости заказа.
Цены и остатки в интернет магазине подтягиваются из таблиц (сайт статика).
Теперь 1с…
Давайте поговорим о стоимости входа и обслуживания, хотя бы цена 1с ИТС в год)))).
Сколько нам будет стоить простенький набор 1с с возможностью сетевой одновременной работы, удивите?
Сопровождение этого разношерстного хозяйства таблиц может стоить дороже ИТС в год.
К тому же если это нетленка на 1С, то ИТС не нужен как бы.
Купили перепродали товар, за 5 лет чистыми на руки заработали 10 млн рублей.
Вы готовы как бизнесмен вложить в 1с 3% от личных денег? (приблизительно 300 т.р)
И самый главный вопрос зачем?
У вас из коробки сразу есть, многопользовательская среда, с автоматическим хранением данных в базе, транзакциями, хорошо подобранными элементами GUI и http сервисами для интеграции с Web, качественной отладкой и самое главное — механизмом обновлений и вам даже сервак, по хорошему не нужен. По мне, так отличное решение для самописок.
В этом что то есть….
А чем DevExpress не угодил для самописок? Там и готовые формы и тоже самое взаимодействие с базами данных
Вы узко смотрите на задачи.
Ваша задача себя продать как специалиста, как бы для этого статья. Но вы себя отталкиваете, лично я начинаю терять интерес к диалогу. Хотя в реальности для мне интересна платформа 1с как для разработки отраслевого решения с применением опросов по rs-232 (аналог опросов весового оборудования).
Такой переход надо тщательно продумывать. Я и первый раз уходил с «идеей». Разработал в 1С генерацию одностраничного сайт на JS для сбора заказов и обмена с 1С. Решил внедрять свою разработку, но как оказалось на немного опередил время.
Второй раз начал с «идеи» 8-ки. В 2003 она только вышла. Устроился в компанию, изучил и внедрил там УТ 10, Бухгалтерию 8. Накопил финансовый запас. Уволился. Подготовился к экзамену на 1С: Специалиста. Сдал его. И дальше меня подхватила волна внедрения 8-ки.
В 1С всегда фрилансеров было много. До эпохи развитого Интернета они, в отличии от меня, плодились через франчайзи, уводя их клиентов.
По этому обязательно продумывайте чем вы будите заниматься.
И ещё почасовая оплата, для программиста это не ориентир. Карьера программиста как и карьера писателя, это тираж.
Поэтому надо назначить себе срок «обдумывания» и потом уходить.
Я ушел, когда накопил подушку на полгода. Подумал, что мне полгода хватит понять, смогу ли я выжить на 1С или нет.
Я с началу выбрал фондовый рынок. Прошел обучение в Финам, в августе 2008. Но дело даже не в моменте. За рынком надо следить и это занимает время.
Остановился на недвижимости. Земля была за три года построил дом. Сейчас сдаю.
fixinchik.ru/bol-ot-nalichiya-deneg
Как всё же решиться на фриланс? Как гарантировать самому себе стабильный заработок (поток клиентов)?
На офисе ведь то одного клиента подкинут, то другого. Никого не ищешь. А на фриланс площадках смотрел, та вообще задания перехватывают каждый раз студенты что-ли? За работу на 2000 берутся за 200 руб.
Вот и думаю… Да ну нафиг. Лучше стабильно в офисе за 100 рублей целый день сидеть, чем на фрилансе неизвестно как.
Как у вас это получается?
Потом можно уходить. Если не взлетит фриланс — то хоть отдохнете годик.
Ну а в офис вернуться всегда можно.
«Из всех путей выбирайте самый трудный». Там конкуренции меньше.
Как я ушел на 1С-фриланс