На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
! Правила раздела:

  • Перед тем, как задать вопрос, желательно почитать документацию и воспользоваться поиском.
  • Когда задаёте вопрос, то обязательно указывайте платформу (7.7, 8.0, 8.1, 8.2, etc), причем желательно в заголовке. Если речь идёт о типовой конфигурации, то указывайте её название и релиз. Текущие версии можно посмотреть здесь.
  • Ещё раз напоминаем о необходимости соблюдать не только правила, но и законы. Уважайте авторские права.

Высказать своё мнение о модераторах раздела можно здесь: evGenius
  
> Интроспективная программа , Задачка по программированию на 1С (убить время, так сказать)
    Доброго дня!
    Столкнулся с такой задачкой, не при выполнении обязанностей, а для общего развития, так сказать :)
    Итак:
    Интроспективная программа, это программа, которая печатает при выполнении свой собственный код.
    Напрямую считывать код исходного текста программы и выводить его нельзя.
    Код должен генерироваться самой программой. Нужно написать такой код на 1С 8.
    Выводимый код должен полностью совпадать с исходным кодом самой программы.
    Для проверки сгенерированный код будет использован в качестве программного кода решения.
    Задача зацепила. Думаю заняться в свободное время. Ну и сюда кинул, вдруг кто тоже заинтересуется :)
    Сообщение отредактировано: Rust -
      Цитата Rust @
      Выводимый код должен полностью совпадать с исходным кодом самой программы.

      Скомпилированный код нельзя обратно преобразовать до "полностью совпадать".
        Цитата ^D^ima @
        Скомпилированный код нельзя обратно преобразовать до "полностью совпадать".

        не нужно преобразовывать :no: используй сообщить() и выполнить() :yes:
          Цитата Rust @
          Напрямую считывать код исходного текста программы и выводить его нельзя.

          Хм. Допустим можно. И как это сделать? Если знаешь, поделись как.
            нашел в интернетах:
            ExpandedWrap disabled
              Стр="Сообщить(""Стр=""+Символ(34)+Стр+Символ(34)+"";Выполнить(Стр);"")";Выполнить(Стр);
              Цитата niknet @
              Хм. Допустим можно. И как это сделать? Если знаешь, поделись как.

              Если коротко - пакетным запуском конфигуратора выгружаем конфигурацию в файлы, а потом из текстового файла получаем код нужного модуля.

              Добавлено
              Цитата ^D^ima @
              нашел в интернетах:

              Да, есть еще вариант, но смысл тот же.
                Цитата Rust @
                выгружаем конфигурацию в файлы, а потом из текстового файла получаем код нужного модуля

                Неуж. так просто. Я аж полез в конфигуратор посмотреть, мож. я от жизни отстал. Да нет, из конфигуратора выгружаем только в *.cf. А это бинарный файл. Я читал бинарные файлы (давно это было) и это были файлы *.dbf и на языке СИ. Нужно знать структуру файла, чтобы прочитать.
                  Цитата niknet @
                  Неуж. так просто. Я аж полез в конфигуратор посмотреть, мож. я от жизни отстал. Да нет, из конфигуратора выгружаем только в *.cf. А это бинарный файл

                  Отстал. В конфигураторе меню Конфигурация - Выгрузить конфигурацию в файлы, указываешь каталог и конфигурация выгружается в набор файлов, формы в xml, модули в bsl. Все читается и редактируется обычным Блокнотом. У меня сейчас платформа 8.3.10.2561. А возможность такая появилась, если не ошибаюсь, в каком-то древнем релизе платформы 8.2.

                  Цитата niknet @
                  Я читал бинарные файлы (давно это было) и это были файлы *.dbf и на языке СИ. Нужно знать структуру файла, чтобы прочитать.

                  Это было раньше. Сейчас все можно сделать средствами 1С.
                  Сообщение отредактировано: Rust -
                    Цитата Rust @
                    В конфигураторе меню Конфигурация - Выгрузить конфигурацию в файлы, указываешь каталог и конфигурация выгружается в набор файлов, формы в xml, модули в bsl.

                    Такой набор файлов я в гит складываю. Очень удобно.
                    0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                    0 пользователей:


                    Рейтинг@Mail.ru
                    [ Script execution time: 0,0337 ]   [ 15 queries used ]   [ Generated: 28.03.24, 16:55 GMT ]