Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
29 мар 2024, 15:06

Переписать функцию из 7.7 в 8.1

Автор Glikeria, 11 авг 2010, 14:39

0 Пользователей и 2 гостей просматривают эту тему.

Glikeria

                                   Здравствуйте!
Я пытаюсь переписать модуль,написанный для 7.7,в 8.1.Не могли бы Вы мне подсказать,как переделать следующую функцию?Спасибо.
Функция ВалютаДокумента(Д,Субконто2)
   
   Если Д.Выбран() = 1 Тогда
      Если (Д.Договор.ВалютаДоговора.Выбран() = 1) Тогда
         Возврат Д.Договор.ВалютаДоговора;
      КонецЕсли;
      
   ИначеЕсли ТипЗначенияСтр(Субконто2) = "Справочник" Тогда
      Если Субконто2.Вид() = "Договоры" Тогда
         Возврат Субконто2.ВалютаДоговора;
      КонецЕсли;
   КонецЕсли;
   
   Возврат "";
   
КонецФункции // ВалютаДокумента()


YouAreEmpty

Автор, вы жжете=) Из какой конфигурации в какую хотя бы будете переносить?

Glikeria

Просто я хочу эту функцию,написанную в семёрке,переписать в виде запроса в восьмёрке.

YouAreEmpty

Абсолютно непонятно...Объясните точней

Glikeria

У меня есть внешняя обработка,написанная для 1с Предприятие 7.7,мне надо переделать её для 1с 8.1.Модуль такой:
Функция ВалютаДокумента(Д,Субконто2)
   
   Если Д.Выбран() = 1 Тогда
      Если (Д.Договор.ВалютаДоговора.Выбран() = 1) Тогда
         Возврат Д.Договор.ВалютаДоговора;
      КонецЕсли;
      
   ИначеЕсли ТипЗначенияСтр(Субконто2) = "Справочник" Тогда
      Если Субконто2.Вид() = "Договоры" Тогда
         Возврат Субконто2.ВалютаДоговора;
      КонецЕсли;
   КонецЕсли;
   
   Возврат "";
   
КонецФункции // ВалютаДокумента()

//*******************************************
Процедура Сформировать() 
   Перем Валюта,Стр,Приход;
   
   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Таблица"); 
   Сч51    = СчетПоКоду("51");
   Сч52    = СчетПоКоду("52");
   Если Дата2 > КонецРассчитанногоПериодаБИ() Тогда
      Предупреждение("На " + Дата2 + " бухгалтерские итоги не рассчитаны!
      |Расчет итогов выполняется в режиме
      |""Операции - Управление бухгалтерскими итогами""."); 
      Возврат;
   Иначе
      БухИт = СоздатьОбъект("БухгалтерскиеИтоги");
      Если ВыбБС.Выбран()=1 Тогда
          БухИт.ИспользоватьСубконто(ВидыСубконто.БанковскиеСчета,ВыбБС);      
      Иначе
         БухИт.ИспользоватьСубконто(ВидыСубконто.БанковскиеСчета);      
      КонецЕсли;
      
      БухИт.ВыполнитьЗапрос(Дата1,Дата2,"51,52",,,,"Операция","СВ");   
   КонецЕсли;    
   
   КолСтр = 0;
   БухИт.ВыбратьСубконто(ВидыСубконто.БанковскиеСчета);
   Пока БухИт.ПолучитьСубконто(ВидыСубконто.БанковскиеСчета) =1 Цикл 
      БухИт.ВыбратьСчета();
      Пока БухИт.ПолучитьСчет()=1 Цикл
         БухИт.ВыбратьПериоды();
         Пока БухИТ.ПолучитьПериод()=1 Цикл
            Документ   = БухИт.Операция.Документ;
            БС="";
            Если Документ.Вид()="Выписка" Тогда
                БС = Документ.БанковскийСчет;
            ИначеЕсли (Документ.Вид()="ПриходныйОрдер") или (Документ.Вид()="РасходныйОрдер") Тогда
                БС = Документ.Субконто1;
            КонецЕсли;
            ТекстШапки = Документ; 
            Если БухИт.Счет = Сч51 Тогда
               ОстатокНач  = БухИт.СНД("С");
               ОборотПриход= БухИт.КО("С");
               ОборотРасход= БухИт.ДО("С");
               ОстатокКон  = БухИт.СКД("С");
            Иначе   
               БухИт.ВыбратьВалюты();
               Если БухИт.ПолучитьВалюту()=1 Тогда
                  ОстатокНач  = БухИт.СНД("В");             
                  ОборотПриход= БухИт.КО("В");
                  ОборотРасход= БухИт.ДО("В");
                  ОстатокКон  = БухИт.СКД("В");     
               КонецЕсли;
            КонецЕсли;                       
            //Если КолСтр + 6 + Документ.КоличествоСтрок()>49 Тогда
            //   Таб.НоваяСтраница();
            //   КолСтр=0;
            //КонецЕсли; 
            ВсегоПриход = 0;
            ВсегоРасход = 0;
            Таб.ВывестиСекцию("Шапка");
            Если Документ.Вид()="ПриходныйОрдер" Тогда
               Приход  = 1;
               НомерПЛ = Документ.ДокументПоставки.НомерДок;
               Счет    = Формат(ОборотПриход,"Ч015.2. ");
               ВсегоПриход = ВсегоПриход + ОборотПриход; 
               Контрагент  = СокрЛП(Документ.ПринятоОт);
               Содержание  = СокрЛП(Документ.Основание);
               Таб.ВывестиСекцию("Строка");
            ИначеЕсли Документ.Вид()="РасходныйОрдер" Тогда
               Приход  = 0;
               НомерПЛ = Документ.ДокументПоставки.НомерДок;
               Счет    = Формат(ОборотРасход,"Ч015.2. ");
               ВсегоРасход = ВсегоРасход + ОборотРасход;   
               Контрагент  = СокрЛП(Документ.Выдать);
               Содержание  = СокрЛП(Документ.Основание);
               Таб.ВывестиСекцию("Строка");
            ИначеЕсли Документ.Вид()="Выписка" Тогда
               Документ.ВыбратьСтроки();
               Пока Документ.ПолучитьСтроку()=1 Цикл 
                  Приход = 0;
                  Если Документ.Приход>0 Тогда
                     Приход = 1;
                     Счет   = Формат(Документ.Приход,"Ч015.2. ");
                     ВсегоПриход = ВсегоПриход + Документ.Приход;
                  Иначе
                     Счет   = Формат(Документ.Расход,"Ч015.2. ");
                     ВсегоРасход = ВсегоРасход + Документ.Расход;
                  КонецЕсли;
                  Контрагент = Документ.Субконто1;
                  Если ТипЗначенияСтр(Документ.Субконто1) = "Справочник" Тогда
                     Контрагент = СокрЛП(Документ.Субконто1.Наименование);
                     Если Документ.Субконто1.Вид() = "Контрагенты" Тогда   
                        Контрагент =?(ПустоеЗначение(Документ.Субконто1.ПолнНаименование)=1,СокрЛП(Документ.Субконто1.Наименование),СокрЛП(Документ.Субконто1.ПолнНаименование));
                     КонецЕсли;
                  КонецЕсли;
                  Содержание = Документ.НазначениеПлатежа;        
                  Таб.ВывестиСекцию("Строка");   
                  КолСтр = КолСтр + 1;
               КонецЦикла;
            Иначе     
               Документ.Операция.ВыбратьПроводки();
               Пока Документ.Операция.ПолучитьПроводку()=1 Цикл
                  Если (Документ.Операция.Дебет.Счет=Сч51) или (Документ.Операция.Дебет.Счет=Сч52) Тогда
                     Приход = 1;                   
                     ВсегоПриход = ВсегоПриход + Документ.Операция.Сумма;
                      Контрагент  = Документ.Операция.Кредит.Контрагенты;
                  ИначеЕсли (Документ.Операция.Кредит.Счет=Сч51) или (Документ.Операция.Кредит.Счет=Сч52) Тогда
                      Приход = 0;                 
                     ВсегоРасход = ВсегоРасход + Документ.Операция.Сумма;
                     Контрагент  = Документ.Операция.Дебет.Контрагенты;
                  Иначе
                     Продолжить;
                  КонецЕсли;
                  НомерПЛ = Документ.Операция.ПервичныйДокумент;
                  Счет    = Формат(Документ.Операция.Сумма,"Ч015.2. ");                   
                  Содержание  = СокрЛП(Документ.Операция.Содержание);
                  Таб.ВывестиСекцию("Строка");                   
               КонецЦикла;
            КонецЕсли;
            Таб.ВывестиСекцию("Подвал"); 
         КонецЦикла;
      КонецЦикла;
   КонецЦикла;
   
   Таб.Опции(0,0,0,0,"ОпцииВыпискиБанк","ОкноВыпискиБанк");
   Таб.ТолькоПросмотр(1);   
   //Таб.ПовторятьПриПечатиСтроки(3,4);
   Таб.ПараметрыСтраницы(1);
   
   Таб.Показать("Табличка по Выписке банка");
КонецПроцедуры
//*******************************************
Но так как я только-только начала заниматься 1с,то я не очень представляю с чего начать.

YouAreEmpty

начинать можно с курсов 1с по основным объектам например

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск