Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Корректно отработать цикл в цикле          
ignsv Подменю пользователя
сообщение 13.05.12, 16:04
Сообщение #1

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 193
Спасибо сказали: 60 раз
Рейтинг: 0

Ситуация следующая:

Выбираю изменения цен за период
потом начинаю их соответственно выводить( заранее сформировал шапку табДока с датами изменения)

в ТабЗнач храниться все возможные даты изменений
никак не могу организовать праильно в цикле обход

Пример: получаю Дату1 (01.04.12), всего в списке: 01.04.12/05.04.12/10.04.12
сравниваю и поидее должен получить: Область с датой пусто, пусто
то тут все будет норм, ошибки появляються когда у меня несколько дат изменения тогда выводиться : область с датой, пусто,пусто + пусто, область сдатой, пусто, а надо: область с датой,а надо: область с датой, пусто.
Уже прирывал цикл и прочее.

Прошу помощи ибо никак не могу разобраться с такими циклами что б на будущее правильно использовать




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

Ardi Подменю пользователя
сообщение 13.05.12, 16:13
Сообщение #2

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

"А надо надо а надо надо надо а надо" - этот фрагмент описания получился несколько нечитаемым.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

ignsv Подменю пользователя
сообщение 13.05.12, 16:38
Сообщение #3

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 193
Спасибо сказали: 60 раз
Рейтинг: 0

Таки да. опечатка ))

Пример:

Есть Номенклатура с ценами на 01,01,11 и на 01,01,12 (тоесть две записи в ВыборкаДетальныеЗаписи1)

Всего дат изменения цен ( для всех позиций товаров) у меня три 01,01,10 / 01,01,11 / 01,01,12

мне нужно вывисти в макет : пустую область / область с ценой/ область с ценой



у меня жи выводиться шесть полей всего ( из них две с ценами)

Ardi Подменю пользователя
сообщение 13.05.12, 16:52
Сообщение #4

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

ничего не понтно.


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

logist Подменю пользователя
сообщение 13.05.12, 17:05
Сообщение #5

Про1С-ник
Иконка группы
Квалифицированный бухгалтерГений телепатии и социального моделированияЗа заслуги на форуме в 2010 годуМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 9564
Из: Kharkiv, UA
Спасибо сказали: 2539 раз
Рейтинг: 0

А Вы можете написать исходную задачу, и указать конфигурацию, а то из того что написано не всё ясно. Мне кажется что вы вообще не правильным путем идете.


Signature
Личные бесплатные консультации не даю, для этого есть форум!

ignsv Подменю пользователя
сообщение 13.05.12, 17:09
Сообщение #6

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 193
Спасибо сказали: 60 раз
Рейтинг: 0



По калькулятору цена менялась 31,12,10 и 01,12,11 надо вывести в соответствующих колонках

по зеркалу 01,11,11 и 01,12,11 аналогично

по коду:
у меня в ТабЗнач все варианты дат ( шапка с датами)

в ВыборкаДетальныеЗаписи1 дата когда изменялась цена для номенклатуры

все посортировано по датам

УТП 1,2,7,4
остатки с регистра Товары на складах
цены с регистра Цены номенклатуры

Ardi Подменю пользователя
сообщение 13.05.12, 18:00
Сообщение #7

Живет на форуме
***********
Гений телепатии и социального моделирования
Группа: Пользователи
Сообщений: 4121
Из: Киев
Спасибо сказали: 957 раз
Рейтинг: 0

ТабЗначДаты = ТабЗнач.Выгрузить();
ТабЗначДаты.Свернуть("Период");
ТабЗначДаты.Сортировать("Период Убыв");

Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл
для Каждого текДата из ТабЗначДаты Цикл
Отбор = Новый Структура();
Отбор.Вставить("ФизЛицо",Справочники.ФизическиеЛица.ПустаяСсылка());
Отбор.Вставить("фирма",Справочники.фирма.ПустаяСсылка());
Отбор.Вставить("номенклатура",Справочники.номенклатура.ПустаяСсылка());
Строки = ТабЗнач.НайтиСтроки(Отбор);
Если Строки.Количество() > 0 Тогда
    Цена = Строки[0];
Иначе
Цена = 0;
КонецЕсли;
ОбластьДоп.Параметры.История    = ВыборкаДетальныеЗаписи1.Цена;  
ТабДок.Присоединить(ОбластьДоп);  
КонецЦикла;
КонецЦикла;


Сообщение отредактировал Ardi - 13.05.12, 18:01


Signature
Услуги 1С программиста 8.2, 7.7 (Плохо, дорого, очередь). Киев.

Спасибо сказали: ignsv,

ignsv Подменю пользователя
сообщение 13.05.12, 19:22
Сообщение #8

Завсегдатай
Иконка группы
Группа: Местный
Сообщений: 193
Спасибо сказали: 60 раз
Рейтинг: 0

не тут что то не так:

Для Каждого текДата из ТабЗначДаты Цикл
Отбор = Новый Структура();
Отбор.Вставить("ФизЛицо",Справочники.ФизическиеЛица.ПустаяСсылка());
Отбор.Вставить("фирма",Справочники.фирма.ПустаяСсылка());
Отбор.Вставить("номенклатура",Справочники.номенклатура.ПустаяСсылка());
Строки = ТабЗнач.НайтиСтроки(Отбор);
Если Строки.Количество() > 0 Тогда
    Цена = Строки[0];
Иначе
Цена = 0;
КонецЕсли;
ОбластьДоп.Параметры.История    = ВыборкаДетальныеЗаписи1.Цена;  
ТабДок.Присоединить(ОбластьДоп);  
КонецЦикла;


Возьмем внутренний цикл если у нас будет 3 даты в ТабЗначДаты
и две в ВыборкаДетальныеЗаписи1 то присоединиться облпсть 6 раз.

NP = Результат1.Выгрузить();
            ВыборкаДетальныеЗаписи1 = Результат1.Выбрать();
            
            
            ТабДок.Вывести(ОбластьДетальныхЗаписей);
            // номер = 0;
            // Пока ВыборкаДетальныеЗаписи1.Следующий() Цикл
                 для Каждого текДата из ТабЗнач Цикл
                     Отбор = Новый Структура();
                     //Отбор.Вставить("ФизЛицо",Справочники.ФизическиеЛица.ПустаяСсылка());
                     //Отбор.Вставить("фирма",Справочники.фирма.ПустаяСсылка());
                     Отбор.Вставить("Период",текДата.Период);
                     Строки = NP.НайтиСтроки(Отбор);
                     Если Строки.Количество() > 0 Тогда
                         Цена = Строки[0].Цена;
                     Иначе
                         Цена = 0;
                     КонецЕсли;
                     ОбластьДоп.Параметры.История    = Цена;  
                     ТабДок.Присоединить(ОбластьДоп);
                     ОбработкаПрерыванияПользователя();
                    // Прервать;
                 КонецЦикла;


так работает норм, спасибо за помощь

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 16.06.25, 1:43
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!