История изменений
Исправление monk, (текущая версия) :
from_str::(&read_to_string(«data.json»)?)?[3]
from_str::? Это точно работает? А как оно получает массив (или нечто с индексом)?
Если у нас устраивает, что где-то строка (слишком общий тип), то и ладно.
Это хорошо, когда всё укладывается в строку. Но ведь есть ещё массивы, соответствия, объекты GUI…
Когда я пишу на 1С, меня очень радует, что у него динамическая типизация. При необходимости, можно с любыми данными пробросить дополнительные просто упаковав их в структуру и добавив в начале функций, которые эти данные обрабатывают проверку типа.
Было:
Функция Обработка(Данные)
...
Стало
Функция Обработка(Данные0)
Если ТипЗнч(Данные0) = Тип("Структура") Тогда
Данные = Данные0.Старые;
Иначе
Данные = Данные0;
КонецЕсли
...
Если ТипЗнч(Данные0) = Тип("Структура") Тогда
ВыполнитьДопонительноеДействие(Данные0.Дополнительные);
КонецЕсли;
...
Если бы 1С был типизированный, то пришлось бы копипастить функцию, а потом отслеживать изменения в новых версиях функции. А так 6-строчная заплатка справляется.
Исправление monk, :
from_str::(&read_to_string(«data.json»)?)?[3]
from_str::? Это точно работает? А как оно получает массив (или нечто с индексом)?
Если у нас устраивает, что где-то строка (слишком общий тип), то и ладно.
Это хорошо, когда всё укладывается в строку. Но ведь есть ещё массивы, соответствия, объекты GUI…
Когда я пишу на 1С, меня очень радует, что у него динамическая типизация. При необходимости, можно с любыми данными пробросить дополнительные просто упаковав их в структуру и добавив в начале функций, которые эти данные обрабатывают проверку типа.
Было:
Функция Обработка(Данные)
...
Стало
Функция Обработка(Данные0)
Если ТипЗнч(Данные0) = Тип("Структура") Тогда
Данные = Данные0.Старые;
Иначе
Данные = Данные0;
КонецЕсли
...
Если ТипЗнч(Данные0) = Тип("Структура") Тогда
ВыполнитьДопонительноеДействие(Данные.Дополнительные);
КонецЕсли;
...
Если бы 1С был типизированный, то пришлось бы копипастить функцию, а потом отслеживать изменения в новых версиях функции. А так 6-строчная заплатка справляется.
Исходная версия monk, :
from_str::(&read_to_string(«data.json»)?)?[3]
from_str::? Это точно работает? А как оно получает массив (или нечто с индексом)?
Если у нас устраивает, что где-то строка (слишком общий тип), то и ладно.
Это хорошо, когда всё укладывается в строку. Но ведь есть ещё массивы, соответствия, объекты GUI…
Когда я пишу на 1С, меня очень радует, что у него динамическая типизация. При необходимости, можно с любыми данными пробросить дополнительные просто упаковав их в структуру и добавив в начале функций, которые эти данные обрабатывают проверку типа.
Было:
Функция Обработка(Данные)
...
Стало
Функция Обработка(Данные)
Если ТипЗнч(Данные) = Тип("Структура") Тогда
Данные = Данные.Старые;
КонецЕсли
...
Если ТипЗнч(Данные) = Тип("Структура") Тогда
ВыполнитьДопонительноеДействие(Данные.Дополнительные);
КонецЕсли;
...
Если бы 1С был типизированный, то пришлось бы копипастить функцию, а потом отслеживать изменения в новых версиях функции. А так 6-строчная заплатка справляется.