Size: a a a

1С, БСП, DevOps и Архитектура

2021 February 17

JD

John Doe in 1С, БСП, DevOps и Архитектура
Vladimir Nadulich
Кстати в оригинальном алгоритме передается Значение и доппарамтеры (в которых ДанныеКоллекцииФормы), при этом значение НЕ МЕНЯЕТСЯ, но "исчезает" при установке неких цифр в в доппараметры.
"Знач Значение" конечно решает проблему, но совет "если не собираетесь менять" не походит - Значение я не меняю в коде функции.
Как это не меняешь?
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
John Doe
Как это не меняешь?
"в оригинальном алгоритме"
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Vladimir Nadulich
И для объектов тоже всегда и везде делать их копии?
Лучше знать и помнить как работает код.
Закладывать в код то, что кто-то в будущем читая его будет что-то знать и помнить - нежизнеспособный подход
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
John Doe
Закладывать в код то, что кто-то в будущем читая его будет что-то знать и помнить - нежизнеспособный подход
Да, любой код говно. Лучше не писать вообще.
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Vladimir Nadulich
Да, любой код говно. Лучше не писать вообще.
Если к коду предъявляется требование легкости сопровождения (доработки / изменения), то опускание "Знач" (ради экономии создания копии значения) явно противоречит этому
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
Здесь где знач нужен?
Процедура AAA(Значение, стк)
  стк.Парам = стк.Парам - Значение;
КонецПроцедуры;
источник

СП

Серж Перфолента... in 1С, БСП, DevOps и Архитектура
Виталий
Для меня оказалось неожиданным что Макс/Мин не теряют ссылку на значение. Интуитивно считал что их аргументы передаются по значению.
просто косяк в реализации встроенных функций Макс и Мин... в языке 1С функция не может возвращать ссылку... значит и эти функции по логике не должны... но они возвращают...
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
У меня на такой строке первый параметр внезапно менял значение. Вот и все. И не нужно умничать.
источник

𝖍

𝖍𝖔𝖉𝖞𝖙𝖔𝖓𝖊... in 1С, БСП, DevOps и Архитектура
Серж Перфолента
просто косяк в реализации встроенных функций Макс и Мин... в языке 1С функция не может возвращать ссылку... значит и эти функции по логике не должны... но они возвращают...
А это и не функции вовсе, а опкоды 1Сной машины.
источник

𝖍

𝖍𝖔𝖉𝖞𝖙𝖔𝖓𝖊... in 1С, БСП, DevOps и Архитектура
Потому они и могут.
источник

JD

John Doe in 1С, БСП, DevOps и Архитектура
Vladimir Nadulich
Здесь где знач нужен?
Процедура AAA(Значение, стк)
  стк.Парам = стк.Парам - Значение;
КонецПроцедуры;
Для всех входных параметров, которые не являются одновременно еще и выходными, абсолютно всегда нужен Знач
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
Угу. В рекурсии передаем структуры, таблицы... Ушел на сотню уровней - память закончилась.
источник

СП

Серж Перфолента... in 1С, БСП, DevOps и Архитектура
𝖍𝖔𝖉𝖞𝖙𝖔𝖓𝖊
А это и не функции вовсе, а опкоды 1Сной машины.
В документации это называется функциями, поэтому и работать должно как любые другие функции...
источник

𝖍

𝖍𝖔𝖉𝖞𝖙𝖔𝖓𝖊... in 1С, БСП, DevOps и Архитектура
А разве Знач для массива не создает копию ссылки на тот же массив?
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
Создает разумеется.
источник

𝖍

𝖍𝖔𝖉𝖞𝖙𝖔𝖓𝖊... in 1С, БСП, DevOps и Архитектура
Vladimir Nadulich
Создает разумеется.
АГАЩАЗ! Создаётся копия ССЫЛКИ на один и тот же объект!
источник

𝖍

𝖍𝖔𝖉𝖞𝖙𝖔𝖓𝖊... in 1С, БСП, DevOps и Архитектура
Если передать число или строку, то да - копия данных
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
Внезапно. Я правда не знаю как выглядит "копия ссылки". )
источник

𝖍

𝖍𝖔𝖉𝖞𝖙𝖔𝖓𝖊... in 1С, БСП, DevOps и Архитектура
Vladimir Nadulich
Внезапно. Я правда не знаю как выглядит "копия ссылки". )
Если в процедуре написать ДопПарам = 7; , то структура останется не тронутой.
источник

VN

Vladimir Nadulich in 1С, БСП, DevOps и Архитектура
𝖍𝖔𝖉𝖞𝖙𝖔𝖓𝖊
Если в процедуре написать ДопПарам = 7; , то структура останется не тронутой.
Дежавю. Кажется такое поведение было описано на ИТС (
источник