Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
17 Дек 2017, 05:25
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Невходит в цикл  (Прочитано 1711 раз)

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

Оффлайн AxOn

  • **
  • Сообщений: 82
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-10-04
  • Сайт: 
Есть докумень заказ покупателей и справочник номенклатура. У меня при нажатии на кнопку ок в 1-ом цикле выщщитывается количество строк в таблице, а во втором в соответствии с именем товара в справочнике , количество этого товара отнимается от количества заказаного всё в той же строки и т.д. Но пробелма в том что программа невходит во 2-ой цикл. Неподскажите в чём дело? :(






Процедура ПослеЗаписи()
   // Вставить содержимое обработчика.
            
         
               
         Попытка
            к = 0;
         
         Для д = 1 По 10 Цикл
                  
                  
                  
                Сообщить(к);
          
            
                       
            Если ЭлементыФормы.ТабНоменклатура.Значение[к].НомерСтроки <> Null Тогда
               
               к = к + 1;
            
            
            КонецЕсли;
            КонецЦикла;

               
            Исключение         
                   
                            
                   Сообщить("ДААААА");
                  к = к - 1;         
                  
                  ф = 0;
                    

            Для д = 1 По к Цикл
                   
            Кол = ЭлементыФормы.ТабНоменклатура.Значение[ф].Количество;
            
            
            
            
            Имя = Справочники.Номенклатура.НайтиПоНаименованию(ЭлементыФормы.ТабНоменклатура.Значение[ф].Номенклатура);
            Имя.Количество = Имя.Количество - Кол;
            
             Сообщить(Кол);
            
            ф = ф + 1;
         
         КонецЦикла;
         
            КонецПопытки;

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


Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Re: Невходит в цикл
« Ответ #1: 24 Окт 2010, 11:47 »
Программа у вас сможет войти только в один цикл, поскольку один цикл у вас находится в попытке, а другой в исключении.
Что вы делаете этим кодом?
к = 0;
Для д = 1 По 10 Цикл
Сообщить(к);
Если ЭлементыФормы.ТабНоменклатура.Значение[к].НомерСтроки <> Null Тогда
к = к + 1;
КонецЕсли;
КонецЦикла;

Считаете количество строк?
К если строк больше 10?

для подсчета количества строк можно написать так ТабНоменклатура.Количество().

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Re: Невходит в цикл
« Ответ #2: 24 Окт 2010, 11:50 »
Еще  у вас в табличной части номенклатура - это строка или справочник?

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Re: Невходит в цикл
« Ответ #3: 24 Окт 2010, 11:56 »
//Если номенклатура - это справочник, а количество - реквизит справочника
Для Каждого ТекСтрока Из ТабНоменклатура Цикл
Количество = ТекСтрока.Номенклатура.Количество - ТекСтрока.Количество;
Сообщить(Количество);
КонецЦикла
//Если номенклатура - строка
Для Каждого ТекСтрока Из ТабНоменклатура Цикл
НайденныйЭлемент = Справочники.Номенклатура.НайтиПоНаименованию(ТекСтрока.Номенклатура);
Количество = НайденныйЭлемент.Количество - ТекСтрока.Количество;
Сообщить(Количество);
КонецЦикла

Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Re: Невходит в цикл
« Ответ #4: 24 Окт 2010, 12:56 »
AxOn, отпишитесь, пожалуйста, получилось?

Оффлайн AxOn

  • **
  • Сообщений: 82
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-10-04
  • Сайт: 
Re: Невходит в цикл
« Ответ #5: 24 Окт 2010, 13:57 »
Для Каждого ТекСтрока Из ТабНоменклатура Цикл

       НайденЭлимент = Справочники.Номенклатура.НайтиПоНаименованию(ТекСтрока.Номенклатура);

         НайденЭлимент.Количество =  НайденЭлимент.Количество - ТекСтрока.Количество;

КонецЦикла;

да спс за разъяснение, я понял как можно сделать проще. Вот так всё правильно. Только пише ошибку при нажатии на ок. Поля объекта недоступно для записи(((.

P.S
ТекСтрока.Номенклатура и ТекСтрока.Количество - это реквизиты в табличной части
НайденЭлимент.Количество - это реквизит в справочнике




Оффлайн progmikon

  • *****
  • Сообщений: 2090
  • РЕПУТАЦИЯ: 371
  • КПД: 18%
  • Регистрация: 2010-10-09
  • Компания: http://progmikon.blogspot.com/
  • Профессия: Программист 1С
Re: Невходит в цикл
« Ответ #6: 24 Окт 2010, 15:46 »
Для Каждого ТекСтрока Из ТабНоменклатура Цикл

       НайденЭлимент = Справочники.Номенклатура.НайтиПоНаименованию(ТекСтрока.Номенклатура);

         НайденЭлимент.Количество =  НайденЭлимент.Количество - ТекСтрока.Количество;

КонецЦикла;

да спс за разъяснение, я понял как можно сделать проще. Вот так всё правильно. Только пише ошибку при нажатии на ок. Поля объекта недоступно для записи(((.

P.S
ТекСтрока.Номенклатура и ТекСтрока.Количество - это реквизиты в табличной части
НайденЭлимент.Количество - это реквизит в справочнике





Все правильно.
Если вы хотите записать полученный результат в справочник нужно получить объект.
Для Каждого ТекСтрока Из ТабНоменклатура Цикл
    НайденЭлимент = Справочники.Номенклатура.НайтиПоНаименованию(ТекСтрока.Номенклатура);
    ОбъектСпр = НайденныйЭлемент.ПолучитьОбъект();   
    ОбъектСпр.Количество =  ОбъектСпр.Количество - ТекСтрока.Количество;
    ОбъектСпр.Записать();
КонецЦикла;


Теги:
 

Условие запроса, цикл, конструктор запроса

Автор mashamashaРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 1
Просмотров: 349
Последний ответ 31 Янв 2017, 14:29
от Oldman06
Форма Списка. Печать по всем записям справочника. как организовать цикл?

Автор SnakeyРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 2440
Последний ответ 10 Дек 2012, 16:58
от Dethmontt
Не могу понять как правильно написать цикл Помогите!

Автор ПрокофийРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 13
Просмотров: 4965
Последний ответ 15 Апр 2011, 10:55
от Klyacksa
Как сделать цикл по всем строкам в табличной части

Автор it-logicРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 3
Просмотров: 1944
Последний ответ 19 Мар 2014, 09:52
от KrivosheevEV
Помогите составить Цикл Повтора операции

Автор siralexРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 664
Последний ответ 09 Окт 2015, 15:23
от siralex

* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
145 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
50 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
42 Сообщений
BuhRust
32 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
24 Сообщений

* Кто онлайн

  • Точка Гостей: 126
  • Точка Скрытых: 0
  • Точка Пользователей: 1
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal