Как стать автором
Обновить

Комментарии 74

Всё ещё не понимаю что не так с нстр()

в том, что она шедро рассыпана по всему коду.

так это проблема тех кто ее использует, а не проблема самой функции

Ага. Но мы говорим о проблемах использования этой функции. Буквоедство мне не интересно, простите

Если ты кодил на 8.2, то заметил, что 8.3 стала хуже по всем аспектам. Даже википедия пишет, что 1С тормозит всё сильнее с каждой версией. Итого: платформа - отстой, конфигурации - просто мусорная свалка. Особенно нравится корявость клиента 1С - шедевр, и ее надо помнить, ха-ха, чтоб не переписывать начатое сызнова. Там сортировки нет, там поиска нет, там есть отбор, но поиска нет, передать таблицы нельзя, а массивы можно, ха-ха, обработка таблиц клиента на сервере - чистый колхоз. Костыльное программирование. Это позор, товарищи.

да, поддерживаю. Система без обратной связи деградирует. 1с не исключение.

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

надеюсь, 1с разорится и прекратит своё жалкое существование.

Товарищь Разорятор, а где же альтернативы?

Альтернатива кроется не в проге, а в законодательстве. Если б всё было по уму, то пиши на чем хочется, как хочется, как угодно, хоть ровно, хоть криво. На текущий момент, даже не владея конкретной инфой, я не наблюдаю в обществе такого тренда от слова "совсем".

это байка, что сила 1с в том, что она поспевает за законодательством.

Не совсем байка. Я как-то поддерживал Дел&фин, и тогда он отставал от законодательства на 1,5..2 месяца, и это было печально.

А 1С делала фиксы под законодательство за 1..5 рабочих дней.

Я несколько о другом.

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

1С хорошо справляется с бухгалтерией, но все ее попытки залезть в нишу ЕРП провальны. Там нужна четкая методология и порядок, а не шарахания. Бизнес любит тишину.

нету, 1С придавила всех а конкурентов загнала в свое стойло (Мой склад)

Вот Tryton ERP https://habr.com/ru/post/222121/ , https://www.tryton.org/ ;
Или Adempiere http://www.adempiere.net/web/guest/welcome , https://github.com/adempiere/adempiere ;
Галактика https://galaktika.ru/erp
Парус https://erp.parus.com/ , https://eastsoft-su.turbopages.org/turbo/eastsoft.su/s/parus.html

Аврда ещё http://www.ansoft.ru/
Да даже убогий дел-фин (https://www.del-fin.ru/)

Вопрос в популярности и в наличии внедренцев и поддерживальщиков на местах.

Ну куда ж без фузины, где все эти проблемы уже давно решены.

А как в фузине реализована многоязычность? Файл ресурсов?

Да. Вот пример.

Для MESSAGE expression это тоже работает, верно? Вроде бы в документации это явно не отражено.

Для всех строковых литералов одинаковое поведение во всем коде. Поэтому в документации это пока отражено только в одном месте.

Уже полтора года прошло с вашей хвалебной статьи о LS Fusion (ну та, где "отличная система, гораздо лучше чем 1С, отличное описание в маркетинговых описаниях, надо будет на днях попробовать скачать и установить"). Может настало время все-таки скачать и посмотреть? =)

Мне вот кажется, что если франч попробует вякнуть в сторону 1С, то быстро распрощается со своим статусом.

все так. Оттого и гниет 1С.

"Даже википедия пишет" это, конечно, шикарный аргумент ))))

особенно для программистов. ;-)

так исторически сложилось

такова жизнь, но вам какое дело? взялись перевести 1с:розницу для новых продавцов из сопредельных стран?

Ага, как-то сопровождал одно расширение, где переводы были прямо в НСтр вставлены через Вместо. Печальнее зрелища не наблюдал.

Не обязательно сопредельных. В Латинской Америке не слышно про внедрения хорошего во многих отношениях софта. И приходится идти на пляж, а тут сейчас холодно.

Как по мне, так очень радикально.

Для перевода НСтр() править модули не обязательно, есть штатное средство: редактирование текстов интерфейса. В этом случае перевод будет храниться в ресурсах. НСтр для того и нужна, чтобы строки попадали в ресурсы для локализации, строки, не завёрнутые в НСтр, как раз, не локализуются никак. Мало того, НСтр позволяет локализовать строки на языки, изначально не предусмотренные конфигурацией.

вы путаете тексты интерфейсов и тексты, завернутые в НСТр. Моя статья про НСтр

Не путаю. Там же локализуются и НСтр (Вкладка "Модули", галка "Искать в функциях "НСтр" ("NStr") в модулях").

ну вот потыкайте и посмотрите что будет, она прямо в коде вам поменяет, т.е. непосредственное вмешательство в код, о чем я и писал в статье. Вы ошибаетесь.

Хм, да, действительно, происходит правка самого кода. Был не прав.

вот о том и речь, у 1С всегда ... своим путем. Обычно самым кривым.

Госпади, какой провал, ой все... А если серьезно, то 1С никогда не заботилась о разработчике. Работая в Java c Intellij понимаю сколько времени я потерял на эту желтую поделку.
Коллеги, разработчики 1С, еще раз повторюсь, учить современные технологии, не тратьте время на это.

Ты можешь перечислить конкретные профиты перехода? А то знаешь как бывает - ой, там всё сделано по уму, а по факту - турбопаскали на бейсиках в фокспрохах. Про САП вот всяко разно пишут, один хвалит, второй - убеждает "не дай бог"...

главное в переходе не поменять шило на мыло

Больше зарплаты, удобнее и приятнее код писать, меньше стрессов и нервотрепки. Что вам еще надо?

может это привлекает человеков-винтиков, но человеков-героев это скорее отпугнет. Стать рабом корпоративного мира? Да ну нафиг

Как раз рабство корпоративного мира и бюрократии это 1с. А к этому ужасные инструменты разработки вдобавок.

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

это стёб?

нет

С бизнесовой точки зрения он прав - быстро делаем интерфейсики, а платформа из коробки поддерживает клиент-серверверное взаимодействие, контроль целостности данных, ролевую модель и быстрое прототипирование интерфейсов, которые создаёшь просто мышкой.

С технологической... Язык не поворачивается называть 1С "совершенной", но если это слово означает, что платформа активно развивается, то почему бы и нет?)

она могла бы развиваться еще быстрее, если бы слушала программистов, а не топ-менеджеров.

Согласно Википедии, первый релиз gettext состоялся в 1990 году.

это вы к чему?

Видимо, к тому, что разработчики 1С могли бы сделать интернационализацию ещё в семёрке, если б глянули на gettext.

тогда они на такое даже не замахивались.

Почему же, СуммаПрописью в Комплексной конфе была для русского, узбекского, казахского и английского языков, т.е., зайчатки i18n были..

О, 1С сразу пыталась завоевать мир? ;-)

Хотя нет, скорее там просто нужно было в разных странах СНГ выводить в печатные формы на нужном языке.

К тому, что альтернативная вселенная 1С ещё не видела 1990 год на своём альтернативном календаре.

В новых релизах 1С появилась функция НСтр, вот пример ее использования.

Посмотрел, уже в 2015 году уже точно была эта "новая" функция.

это буквоедство или как? Новые релизы не могут быть в 2015 году?

Так в итоге, что предлагает автор? Вроде бы претензии не к функции, а к ее использованию

Чтоб 1Сники разработчики платформы и конфы узнали, что они нехорошие люди, редиски. Невежливо излагать матом, а хотелось бы.

и это тоже. Сколько можно терорризировать 1сников?

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

Какой сценарий использования, примеры?

А ещё перевод зависит от контекста

в смысле какой сценарий.

Функция ГлобНСтр(Строка, СтандартноеПоведение)

Если Строка = "ru=Привет" Тогда Строка = "ru=Привет;en=Hello");
ИначеЕсли Строка = "ru=Выпьем чаю?" Тогда Строка = "ru=Выпьем чаю?;en=Drink tea?");
...
КонецЕсли;

КонецФункции

Вы бы хоть мапу использовали (не помню как в 1с называлась, соответствие? Структура?). А то у вас O(n) вместо O(1)/O(log n).

ну это уже детали, ага.

НЛО прилетело и опубликовало эту надпись здесь

Странная претензия, это просто один из инструментов многоязычности, вам никто не мешает сделать функцию тип Мультиязычность.Приветствие();, в которой будет размещен ваш текст, и там вы можете уже и использовать нстр, или другой способ локализации, а дальше в коде и использовать Сообщить(Мультиязычность.Приветствие()); Если же планируете переводить конфигурацию, то есть уже куча инструментов для ее перевода, например конфигурация 1С:Переводчик, и т.д..

мне никто не мешает, но я сопровождаю типовой код. А они используют именно НСтр.
И мне приходится их фразочки искать по всему коду, чтобы переводить. И еще через пень-колоду заменять их через механизм расширений. Перечитайте статью.

Так, где статья, при всем уважении, здесь просто написано: "1С имеет неудобный механизм локализации" - это не статья, статьей бы было, если бы вы героически вышли из положения, сделали бы свой механизм локализации, что в разе сократило бы время ваших страданий, либо разобрались с теми механизмами, что 1С использует для перевода своих конфигураций.

я описал методы, как сейчас выкручиваются программисты из такой неудобной системы локализации. Но может быть вы предложите своё решение?

И не надо смягчать. Не "неудобная", а "провал". Так сказать "это фиаско 1С, братан".

↓↓ Тыц!

чего?

Дык тут и статьи не надо: подобно gettext , делаем нумерованные строковые ресурсы в виде СписковЗначений, например.

RU: 123-"Привет!"; 124-"Выпьем чаю?"

EN: 123-"Hello!"; 124-"Would you like a cup of tea?".

В расширение или в Глобальный модуль пихаем процедуру НатурСтр(НомРес), и эта процедура, в зависимости от выбранного языка, выводит русский, английский или квэнья там..

можно и так, можно и гуид вместо номера, но 1с сделала по самому кривому пути.

Причем файлы ресурсов в 1С есть - Макеты. Добавить еще один тип ресурса, редактор оного, и добавить перегрузку для НСтр("Привет", "ОбщийМакет.Локализация", "ru"); не выглядит уж очень неподъемной задачей.

Надеюсь, если не в восьмёрке, то в Исполнители/Элементе сделают более удобные механизмы локализации.

программистам 1с остается только надеяться. Влиять на 1С они не могут

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории