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

Помогите разобраться с кодом!!!!

Автор glenchikm, 22 ноя 2010, 10:20

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

glenchikm

Есть код, данный код расположен в модуле формы. Это опциональная аналитика. Вот не совсем могу разобраться что там написано!!! С запросом понятно, а вот начиная с ПОПЫТКА как-то не очень понятно.... или может быть кто-нибудь объяснит хоть как работает попытка.....Пожалуйста!!!!

&НаСервере
Процедура ПриИзмененииУчетаПоПреподавателям(УчетПоПреподавателям)

   Запрос = Новый Запрос;
   Запрос.Текст =
      "ВЫБРАТЬ
      |   Бухгалтерский.Ссылка,
      |   Бухгалтерский.Наименование
      |ИЗ
      |   ПланСчетов.Бухгалтерский КАК Бухгалтерский
      |ГДЕ
      |   (НЕ Бухгалтерский.ПометкаУдаления)
      |   И (НЕ Бухгалтерский.Забалансовый)
      |   И (&УчетПоПреподавателям
      |         ИЛИ Бухгалтерский.ВидыСубконто.ВидСубконто = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Преподаватели))
      |   И Бухгалтерский.ВидыСубконто.ВидСубконто = ЗНАЧЕНИЕ(ПланВидовХарактеристик.ВидыСубконто.Курсы)";

   Запрос.УстановитьПараметр("УчетПоПреподавателям", УчетПоПреподавателям);

   Результат = Запрос.Выполнить();

   ВыборкаДетальныеЗаписи = Результат.Выбрать();

   Пока ВыборкаДетальныеЗаписи.Следующий() Цикл //обход результата эт понятно
      СчетСсылка = ВыборкаДетальныеЗаписи.Ссылка;   
      Попытка
         ЗаблокироватьДанныеДляРедактирования(СчетСсылка);
         СчетОбъект = СчетСсылка.ПолучитьОбъект();
         ВидыСубконтоСчета = СчетОбъект.ВидыСубконто;
         
         СубконтоПреподаватель =
                  ВидыСубконтоСчета.Найти(ПланыВидовХарактеристик.ВидыСубконто.Преподаватели);
         Если СубконтоПреподаватель = Неопределено И ВидыСубконтоСчета.Количество() < 2 Тогда
            //включаем         
            НовоеСубконто = ВидыСубконтоСчета.Добавить();
            НовоеСубконто.ВидСубконто = ПланыВидовХарактеристик.ВидыСубконто.Преподаватели;
         ИначеЕсли НЕ УчетПоПреподавателям Тогда
            //исключаем
            Если НЕ СубконтоПреподаватель.Предопределенное Тогда
               ВидыСубконтоСчета.Удалить(СубконтоПреподаватель);
            КонецЕсли;   
         КонецЕсли;   
         СчетОбъект.Записать();
         
      Исключение
         Сообщение = Новый СообщениеПользователю;
         Сообщение.Текст = "Не удалось записать счет "
                                       + ВыборкаДетальныеЗаписи.Наименование;
         Сообщение.Сообщить();                              
      КонецПопытки;   
   КонецЦикла;

КонецПроцедуры   

Tatitutu

а что тебя смущает ?
Попытка
//программа пытается выполнить какое то действие
Исключение
//это то что происходит если не получается у нее

если бы не было этой конструкции
то код вываливался бы у тебя с ошибкой , объект заблокирован или возникали бы какие либо коллизии

*  MAGAZKA - лучшая программа для розничного магазина (с) *

Теги:

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

Рейтинг@Mail.ru

Поиск