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

Автор Тема: Не могу понять как правильно написать цикл Помогите!  (Прочитано 4951 раз)

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

Оффлайн Прокофий

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-15
  • Сайт: 
  • Профессия: Ученик 1С
Здравствуйте!!!
Что то не могу сообразить как правильно написать код...
Делаю прогу на 8.2 в управляемом режиме. Есть справочник Ряды, ну и  при заполнении элементов справочника  Код элемента это номер ряда, в котором есть реквизиты Кол-во мест и т.п.
И вот нужно написать цикл, чтобы на форму добавлялся элемент "Группа" для каждого такого элемента справочника.
Заранее благодарю!


Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Что-то не вижу ни одной попытки его написать...
Если что-то не получается - публикуйте свои варианты, разберем, а придумывать за вас как-то не хочется...
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать

Оффлайн Прокофий

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-15
  • Сайт: 
  • Профессия: Ученик 1С
Привет Клякса!
Вот какой код есть. Если в Спр.Ряды будет записан только один элемент, то он выводит эти кнопки, а если два или больше то пишет ошибку

{Обработка.Зал.Форма.Форма.Форма(84)}: Ошибка при вызове метода контекста (Добавить)
                   Место=Элементы.Добавить(ИмяМеста,Тип("КнопкаФормы"), Элементы.Группа1);
Недопустимое значение параметров

Я не пойму, он как то зацикливается что ли, вроде выборка идет


   Если  МаксКолМествРяду<>0 тогда   
            Если (КолРядов<>0)   
               И (МаксКолМествРяду<>0) Тогда
               НомерРяда=0;
               К=0;
               Выборка = Справочники.Ряды.Выбрать();
               Пока Выборка.Следующий() Цикл                   
                  ТекРяд=Выборка.Ссылка;
                  КолМестВРяду = ТекРяд.КоличествоМест1+ТекРяд.КоличествоМест2+ТекРяд.КоличествоМест3+ТекРяд.КоличествоМест4;
                   //Если кол мест не указано то это проход
                   Если КолМестВРяду=0 Тогда
                     Продолжить;
                  Иначе
                     К=К+1;
                  КонецЕсли;
                  НомерРяда=НомерРяда+1;
                  К=НомерРяда;
                  
                  //Определим кол проходов в текущем ряду
                  КолПроходовВЗале=0;
                  Если (ТекРяд.КоличествоМест2)<>0 Тогда
                     КолПроходовВЗале=КолПроходовВЗале+1;
                  Конецесли;
                  Если (ТекРяд.КоличествоМест3)<>0 Тогда
                     КолПроходовВЗале=КолПроходовВЗале+1;
                  Конецесли;
                  Если (ТекРяд.КоличествоМест4)<>0 Тогда
                     КолПроходовВЗале=КолПроходовВЗале+1;
                  Конецесли;
                  КолМествРяду=КолМествРяду+КолПроходовВЗале;
                  НомерМеста=0;
                     
                  Для НомТекПрохода=0 По КолПроходовВЗале Цикл
               Для Н=1 По ТекРяд["КоличествоМест"+Строка(НомТекПрохода+1)] Цикл       
                  
                  НомерМеста=НомерМеста+1;
                  МестоЗаголовок = НомерМеста;
                  ШиринаКнопки=4;
                   ВысотаКнопки=2;
                  ИмяМеста="Место";
                   Место=Элементы.Добавить(ИмяМеста,Тип("КнопкаФормы"), Элементы.Группа1);
                     Место.ИмяКоманды = "Команда1";
                     Место.КнопкаПоУмолчанию = Истина;
                  ПозЛево=10+(ШиринаКнопки+5)*ТекКолонка;
                   ПозВерх=10+(ВысотаКнопки+5)*ТекСтрока;
      
                   Если (ТекКолонка=0) Тогда
                     ПозЛево=10;
                   КонецЕсли;
               
               Место.Ширина = ШиринаКнопки;
                   Место.Высота = ВысотаКнопки;
               
                  Место.Заголовок = МестоЗаголовок;
                  ЦветМеста=Новый Цвет(0,255,0); //По умолчанию зелёный
                  Место.ЦветФона = ЦветМеста;
                     КонецЦикла;   
               КонецЦикла;
            КонецЦикла;
            КонецЕсли;
         КонецЕсли;


Оффлайн Прокофий

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-15
  • Сайт: 
  • Профессия: Ученик 1С
      Для НомТекПрохода=0 По КолПроходовВЗале Цикл
               Для Н=1 По ТекРяд["КоличествоМест"+Строка(НомТекПрохода+1)] Цикл       
                  
                  НомерМеста=НомерМеста+1;
                  МестоЗаголовок = НомерМеста;
                  ШиринаКнопки=4;
                   ВысотаКнопки=2;
                  ИмяМеста="Место";
                   Место=Элементы.Добавить(ИмяМеста,Тип("КнопкаФормы"), Элементы.Группа1);
                     Место.ИмяКоманды = "Команда1";
                     Место.КнопкаПоУмолчанию = Истина;
                  ПозЛево=10+(ШиринаКнопки+5)*ТекКолонка;
                   ПозВерх=10+(ВысотаКнопки+5)*ТекСтрока;
      
                   Если (ТекКолонка=0) Тогда
                     ПозЛево=10;
                   КонецЕсли;
               
               Место.Ширина = ШиринаКнопки;
                   Место.Высота = ВысотаКнопки;
               
                  Место.Заголовок = МестоЗаголовок;
                  ЦветМеста=Новый Цвет(0,255,0); //По умолчанию зелёный
                  Место.ЦветФона = ЦветМеста;
                     КонецЦикла;   
               КонецЦикла;
            КонецЦикла;
            КонецЕсли;
         КонецЕсли;

Оффлайн Прокофий

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-15
  • Сайт: 
  • Профессия: Ученик 1С
               Для НомТекПрохода=0 По КолПроходовВЗале Цикл
               Для Н=1 По ТекРяд["КоличествоМест"+Строка(НомТекПрохода+1)] Цикл       
                  
                  НомерМеста=НомерМеста+1;
                  МестоЗаголовок = НомерМеста;
                  ШиринаКнопки=4;
                   ВысотаКнопки=2;
                  ИмяМеста="Место";
                   Место=Элементы.Добавить(ИмяМеста,Тип("КнопкаФормы"), Элементы.Группа1);
                     Место.ИмяКоманды = "Команда1";
                     Место.КнопкаПоУмолчанию = Истина;
                  ПозЛево=10+(ШиринаКнопки+5)*ТекКолонка;
                   ПозВерх=10+(ВысотаКнопки+5)*ТекСтрока;
      
                   Если (ТекКолонка=0) Тогда
                     ПозЛево=10;
                   КонецЕсли;
               
               Место.Ширина = ШиринаКнопки;
                   Место.Высота = ВысотаКнопки;
               
                  Место.Заголовок = МестоЗаголовок;
                  ЦветМеста=Новый Цвет(0,255,0); //По умолчанию зелёный
                  Место.ЦветФона = ЦветМеста;
                     КонецЦикла;   
               КонецЦикла;
            КонецЦикла;
            КонецЕсли;
         КонецЕсли;

Оффлайн Прокофий

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-15
  • Сайт: 
  • Профессия: Ученик 1С
               Для НомТекПрохода=0 По КолПроходовВЗале Цикл
               Для Н=1 По ТекРяд["КоличествоМест"+Строка(НомТекПрохода+1)] Цикл       
                  
                  НомерМеста=НомерМеста+1;
                  МестоЗаголовок = НомерМеста;
                  ШиринаКнопки=4;
                   ВысотаКнопки=2;
                  ИмяМеста="Место";
                   Место=Элементы.Добавить(ИмяМеста,Тип("КнопкаФормы"), Элементы.Группа1);
                     Место.ИмяКоманды = "Команда1";
                     Место.КнопкаПоУмолчанию = Истина;
                  ПозЛево=10+(ШиринаКнопки+5)*ТекКолонка;
                   ПозВерх=10+(ВысотаКнопки+5)*ТекСтрока;
      
                   Если (ТекКолонка=0) Тогда
                     ПозЛево=10;
                   КонецЕсли;
               
               Место.Ширина = ШиринаКнопки;
                   Место.Высота = ВысотаКнопки;
               
                  Место.Заголовок = МестоЗаголовок;
                  ЦветМеста=Новый Цвет(0,255,0); //По умолчанию зелёный
                  Место.ЦветФона = ЦветМеста;
                     КонецЦикла;   
               КонецЦикла;
            КонецЦикла;
            КонецЕсли;
         КонецЕсли;


Оффлайн cska-fanat-kz

  • 1С:Специалист
  • Глобальный модератор
  • *****
  • Сообщений: 5745
  • РЕПУТАЦИЯ: 1099
  • КПД: 19%
  • Красная армия всех сильней!
  • Регистрация: 2010-11-06
    • Skype: cska-fanat-kz81
  • Сайт: cska-fanat-kz.ucoz.kz
  • Профессия: Разработчик 1С
Не мучайтесь )
Форум не понимает квадратные скобки (вроде бы если не внутри тега "code").
Получил помощь - скажи СПАСИБО.
Разобрался сам - расскажи другим.

Оффлайн Прокофий

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-15
  • Сайт: 
  • Профессия: Ученик 1С
АА...Спасибо)
Вот Продолжение=)

Для НомТекПрохода=0 По КолПроходовВЗале Цикл
Для Н=1 По ТекРяд (Строка(НомТекПрохода+1)) Цикл
НомерМеста=НомерМеста+1;         МестоЗаголовок = НомерМеста;
ИмяМеста=НомерМеста;
Место=Элементы.Добавить(ИмяМеста,Тип("КнопкаФормы"), Элементы.Группа1);
КонецЦикла; КонецЦикла

Оффлайн Прокофий

  • *
  • Сообщений: 26
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-15
  • Сайт: 
  • Профессия: Ученик 1С
Работает!
Не работало потому что имя кнопки не уникально было)))

Оффлайн Klyacksa

  • Фрилансер. Милости прошу с задачами в личку.
  • Глобальный модератор
  • *****
  • Сообщений: 1325
  • РЕПУТАЦИЯ: 430
  • КПД: 32%
  • Регистрация: 2010-08-20
  • Сайт: 
  • Профессия: Программист 1С
Привет, Прокофий)
Цитировать
Не работало потому что имя кнопки не уникально было)))
Да, именно поэтому, не успела ответить. Зато, как говорится, если задачу решил сам - попробуй теперь забудь, как ;)
xxx: Спасибо! Я бы загуглил, но ты интересней. Материшься. Злишься. Послать можешь...

Мысль - это оргазм мозга. Кто способен его испытать - получают истинное наслаждение, остальным приходится имитировать


Теги:
 

Помогите срочно!! В вкладке "Сервис"--> "Журнал регистрации" отражаются все операции как можно определить сделаны ли операции "задним числом" и как вычислить первоначальную информацию какой расчет поменял на другой?

Автор 2ronРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 4292
Последний ответ 24 Дек 2015, 15:34
от дфтын
Помогите подобрать Back-office и Front-office

Автор avrnskРаздел Пользователям "1С - Предприятие 8"

Ответов: 1
Просмотров: 5551
Последний ответ 07 Сен 2010, 12:01
от mohock
Помогите с отчётами в УТ 10.3. (Ведомость по товарам и ведомость по заказам)

Автор chum710Раздел Пользователям "1С - Предприятие 8"

Ответов: 2
Просмотров: 5887
Последний ответ 28 Мар 2012, 13:02
от chum710
Помогите с отчетом "Валовая прибыль"

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

Ответов: 4
Просмотров: 4366
Последний ответ 10 Сен 2015, 13:57
от Dm109
помогите с отчетом "характеристики контрагентов"

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

Ответов: 2
Просмотров: 1978
Последний ответ 07 Дек 2016, 15:53
от Kironten

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

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

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


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

* Реклама

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
172 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
51 Сообщений
alex0402
49 Сообщений
andron81_81
39 Сообщений
AIFrame
37 Сообщений
MuI_I_Ika MuI_I_Ika
34 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
28 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal