8.х Версионность алгоритмов

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Annie, 14 окт 2014.

  1. TopicStarter Overlay
    Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Коллеги, кто реализовывал версионность алгоритмов на платформе 1с, поделитесь опытом :)
    Буду рада любым советам, в том числе, куда посмотреть, что почитать.
    Идея есть делать через регистр сведений с хранением имени процедуры, но как-то, на мой взгляд не очень оптимальное решение.
  2. shurikvz
    Offline

    shurikvz Модераторы Команда форума Модератор

    Регистрация:
    1 окт 2009
    Сообщения:
    8.409
    Симпатии:
    316
    Баллы:
    104
    Не реализовывал.

    По отдельности слова знакомы, вместе нет.. :) "версионность алгоритмов" - что это?
  3. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Не совсем понятень вопрос. Что именно версионировать хотите, если коды алгоритмов и т.д. То в чем проблема сделать хранилице и работать через него.
    все будет версионироваться, можете потом сравнить любые версии и откатиться до нужной.
    какая вообще задача?
  4. TopicStarter Overlay
    Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Версионность в данном контексте, это умение системы работать с различными версиями кода в зависимости от даты.
    Допустим, есть некий механизм, который в разный период времени дергает, скажем, разные процедуры/функции.
    Хранилище, как вы, надеюсь, поняли, в данном случае не таблетка )
  5. st88
    Offline

    st88 Профессионал в 1С Команда форума

    Регистрация:
    18 окт 2012
    Сообщения:
    1.725
    Симпатии:
    28
    Баллы:
    54
    странная задача. если надо несколько разных версий алгоритмов, то что мешает сделать несколько процедур: процедура 1, процедура 2 и т.д.
    я думаю сильно на объеме базы это не скажется, а когда нужно вызывать (использовать) нужную процедуру.
    --- Объединение сообщений, 14 окт 2014 ---
    типа Если дата= дата1 тогда
    процедура1();
    иначе если дата=дата2 тогда
    процедура2();

    и т.д.
  6. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Ну то что Вам нужно посмотрите во всех типовых модулях 1С, например НДС
    Там все тупо в коде прописанно
    Если Регистратор.дата >'20110101' Тогда
    Процедура НДС1()
    Если Регистратор.дата >'20120101' Тогда
    Процедура НДСс2012()

    Ну и т.д.
    че велик то изобретать.
    Vladius нравится это.
  7. LordMaverick
    Offline

    LordMaverick Профессионал в 1С

    Регистрация:
    17 мар 2014
    Сообщения:
    3.433
    Симпатии:
    373
    Баллы:
    104
    ну а что тогда в вашем контексте значит "Алгоритм"?

    ведь по сути именно алгоритм и должен учитывать все ваши параметры и по ним выполнять последовательность
  8. TopicStarter Overlay
    Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Ясно, ну я особо не рассчитывала да, на дельные предложения. Но спасибо за советы )
    --- Объединение сообщений, 14 окт 2014 ---
    Банально и вечные правки в коде. Но если ничего дельного не придумаю, конечно, же не буду изобретать велик
  9. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    У меня есть нечто подобное. Только у меня передаются параметры. Но параметры не совсем обычные. Вот пример:
    Код:
    НачалоМесяца(СерверныеФункции.ТекущаяДатаНаСервере() - 86400)
    . Но это своего рода программный код, тобишь алгоритм. У меня это хранится в регистре сведений. (он и предназначен для этого, так что все нормально).
  10. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Скажу так. Как Вы задачу поставили - настолько дельные советы Вы и получили.
    Просто я не совсем понимаю, когда динамически от разного времени нужен разный код. Причем - он может меняться.
  11. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Ну фиг ее знает, какая у нее задача. У меня вот параметры разные значения могут принимать. Поэтому я так и сделал.
  12. TopicStarter Overlay
    Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Не спорю, объяснять порой сложно
    Т.е. в регистре просто хранишь параметры, в зависимости от которых меняется логика работы кода, я правильно понимаю?
  13. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Нет, не правильно. Код у меня один. У меня есть выгрузка. Обычный запрос с отбором по дате. Только вот эта дата всегда разная. Сегодня надо, чтобы это была прошлая неделя, а завтра только текущий день. Причем постоянно следить за этим я не могу. Потому что это идет периодами. Поэтому я решил передавать не дату, а просто строку с кодом. И все.
  14. TopicStarter Overlay
    Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Поняааатно. Через Выполнить() код исполняется?
  15. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Естественно. В принципе я понимаю Вашу задачу. Сложного нет вообще ничего. Все зависит от небольших нюансов. А так, думаю, смысл уловили.
  16. Draco
    Offline

    Draco Модераторы Команда форума Модератор

    Регистрация:
    28 окт 2009
    Сообщения:
    13.634
    Симпатии:
    946
    Баллы:
    204
    Да
    Выполнить (Execute)
    Синтаксис: Выполнить(<Строка>)


    Параметры:
    <Строка>
    Строка, содержащая текст исполняемого кода.

    Описание:Позволяет выполнить фрагмент кода, который передается ему в качестве строкового значения.
  17. TopicStarter Overlay
    Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Я не про сложность исполнения, я про корявость. Надеялась, что есть альтернативное красивое решение :)
  18. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    1С - это программа для ведения учета. Причем с открытым исходным кодом. Штатных возможностей для подобного нет, да и в принципе они не нужны.
  19. TopicStarter Overlay
    Annie
    Offline

    Annie Опытный в 1С Команда форума

    Регистрация:
    10 фев 2010
    Сообщения:
    949
    Симпатии:
    23
    Баллы:
    29
    Не могу, к сожалению, полностью согласиться с утверждением.
    Ок, спасибо всем за участие.
    Последнее редактирование: 14 окт 2014
  20. nbIpKuH_BaH9I
    Offline

    nbIpKuH_BaH9I Модераторы Команда форума Модератор

    Регистрация:
    16 сен 2009
    Сообщения:
    6.980
    Симпатии:
    397
    Баллы:
    104
    Поясните?

Поделиться этой страницей