Интроспективная программа
    , Задачка по программированию на 1С (убить время, так сказать)
  ![]()  | 
Наши проекты:
 Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту  | 
|
| ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS | 
| [216.73.216.5] | 
 
 | 
		
  | 
    Правила раздела:
  
    Интроспективная программа
    , Задачка по программированию на 1С (убить время, так сказать)
  | 
         | 
    |
| 
         | 
      
          Доброго дня! 
        
      Столкнулся с такой задачкой, не при выполнении обязанностей, а для общего развития, так сказать   Итак: Интроспективная программа, это программа, которая печатает при выполнении свой собственный код. Напрямую считывать код исходного текста программы и выводить его нельзя. Код должен генерироваться самой программой. Нужно написать такой код на 1С 8. Выводимый код должен полностью совпадать с исходным кодом самой программы. Для проверки сгенерированный код будет использован в качестве программного кода решения. Задача зацепила. Думаю заняться в свободное время. Ну и сюда кинул, вдруг кто тоже заинтересуется   	  | 
    
| 
         
         
         
          
           Сообщ.
           #2
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Rust @  Выводимый код должен полностью совпадать с исходным кодом самой программы.  Скомпилированный код нельзя обратно преобразовать до "полностью совпадать".  | 
    
| 
         
         
         
          
           Сообщ.
           #3
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата ^D^ima @  Скомпилированный код нельзя обратно преобразовать до "полностью совпадать". не нужно преобразовывать   используй сообщить() и выполнить()      | 
    
| 
         
         
         
          
           Сообщ.
           #4
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Rust @  Напрямую считывать код исходного текста программы и выводить его нельзя.  Хм. Допустим можно. И как это сделать? Если знаешь, поделись как.  | 
    
| 
         
         
         
          
           Сообщ.
           #5
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
          нашел в интернетах: 
        
      ![]() ![]() Стр="Сообщить(""Стр=""+Символ(34)+Стр+Символ(34)+"";Выполнить(Стр);"")";Выполнить(Стр);  | 
    
| 
         
         
         
          
           Сообщ.
           #6
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата niknet @  Хм. Допустим можно. И как это сделать? Если знаешь, поделись как. Если коротко - пакетным запуском конфигуратора выгружаем конфигурацию в файлы, а потом из текстового файла получаем код нужного модуля. Добавлено Цитата ^D^ima @  нашел в интернетах: Да, есть еще вариант, но смысл тот же.  | 
    
| 
         
         
         
          
           Сообщ.
           #7
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Rust @  выгружаем конфигурацию в файлы, а потом из текстового файла получаем код нужного модуля Неуж. так просто. Я аж полез в конфигуратор посмотреть, мож. я от жизни отстал. Да нет, из конфигуратора выгружаем только в *.cf. А это бинарный файл. Я читал бинарные файлы (давно это было) и это были файлы *.dbf и на языке СИ. Нужно знать структуру файла, чтобы прочитать.  | 
    
| 
         
         
         
          
           Сообщ.
           #8
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата niknet @  Неуж. так просто. Я аж полез в конфигуратор посмотреть, мож. я от жизни отстал. Да нет, из конфигуратора выгружаем только в *.cf. А это бинарный файл Отстал. В конфигураторе меню Конфигурация - Выгрузить конфигурацию в файлы, указываешь каталог и конфигурация выгружается в набор файлов, формы в xml, модули в bsl. Все читается и редактируется обычным Блокнотом. У меня сейчас платформа 8.3.10.2561. А возможность такая появилась, если не ошибаюсь, в каком-то древнем релизе платформы 8.2. Цитата niknet @  Я читал бинарные файлы (давно это было) и это были файлы *.dbf и на языке СИ. Нужно знать структуру файла, чтобы прочитать. Это было раньше. Сейчас все можно сделать средствами 1С.  | 
    
| 
         
         
         
          
           Сообщ.
           #9
          
          , 
          
         
         
        
       | 
    |
| 
         | 
      
         Цитата Rust @  В конфигураторе меню Конфигурация - Выгрузить конфигурацию в файлы, указываешь каталог и конфигурация выгружается в набор файлов, формы в xml, модули в bsl.  Такой набор файлов я в гит складываю. Очень удобно.  |