26.06.2017, 06:38 [+3 UTC]
в нашей команде: 2 044 чел. | участники онлайн: 2 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
25.06.2017, 16:23

Последний вопрос:
26.06.2017, 06:34

Последний ответ:
25.06.2017, 07:41

Последняя рассылка:
26.06.2017, 02:15

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
27.12.2010, 12:41 »
Dimon4ik
Спасибо за советы и программу. Я с Вами полностью согласен. Но, к сожалению, пока что нет возможности изучать английский в живом общении. Поэтому, для начала, хотелось бы наработать некоторую базу, а уже потом совершенствовать ее живым общением. [вопрос № 181636, ответ № 265120]
31.01.2010, 14:14 »
Мироненко Николай Николаевич
Спасибо большое!!! SmartTouch пока не работает, т.к. там пока не реализована поддержка драйверов Toshiba, но это пока что. А сейчас работаю с BlueTooth Remote Control. Ещё раз спасибо :)) [вопрос № 176391, ответ № 259078]

РАЗДЕЛ [неизвестная рассылка]

[администратор рассылки: [неизвестный]]

Лучшие эксперты в этом разделе


Перейти к консультации №:
 

Консультация онлайн # 63902
Раздел: [неизвестная рассылка]
Автор вопроса: Darina
Отправлена: 23.11.2006, 18:16
Поступило ответов: 3

Здравуствуйте! Уважаемые эксперты, подскажите пожалуйста мне в очередной раз.
Пишу обработку по удалению нулевых значений в истории (Номенклатура.Себестоимость). Как в приложении работает, но как видно, сделано только для конкретного наименования. А как мне сделать, чтобы удалялось во всём справочнике (имеет группы) или хотя бы в определенной группе. Спасибо!

Приложение:

Состояние: Консультация закрыта

Ответ # 128093 от Шахрайчук Владимир Анатольевич

Здравствуйте, Darina!
вСпр.НайтиПоКоду(200);
нужно заменить на
вСпр.ВыбратьЭлементы()
Пока вСпр.получитьЭлемент()=1 Цикл
ну и закрыть цикл.
Переберутся все элементы справочника, независимо от групп.
Кстати, а почему вы не трете подряд идущие дублирующиеся значения?


Консультировал: Шахрайчук Владимир Анатольевич
Дата отправки: 23.11.2006, 18:34

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 128096 от Gl0betrotter

Здравствуйте, Darina!

В Вашей обработке в строке 5 указано позиционирование на конкретном элементе. Используйте цикл…

//*******************************************
//С циклом перебора всех элементов справочника
Процедура Сформировать()
вСпр=СоздатьОбъект("Справочник.Номенклатура");
вСпр.ВыбратьЭлементы();
Пока вСпр.ПолучитьЭлемент()>0 Цикл
Тек=вСпр.ТекущийЭлемент();
Если Тек.ЭтоГруппа()=1 Тогда
Продолжить;
КонецЕсли;
вПериодический=СоздатьОбЪект("Периодический");
// Создаем периодический обЪект.
вПериодический.ИспользоватьОбъект("Себестоимость",Тек);
// Связываем обЪекты.
вПервый=1;
// Для того чтобы не потереть 1-й элемент, тк он достаточно важен, даже если и ноль.
вПериодический.ВыбратьЗначения();
// Открываем выборку значений.
Пока (вПериодический.ПолучитьЗначение()=1) Цикл
// Выбираем значение из списка.
// Не первый элемент.
Если (вПериодический.Значение=0) Тогда
// Удаляем это значение.
вПериодический.Удалить();
Иначе
вПервый=0;
// Пропускаем первое значение.
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры

//*******************************************
// Если хотите анализировать элементы только определенной группы
// ВыбГруппа – наш элемент диалога
Процедура Сформировать()
вСпр=СоздатьОбъект("Справочник.Номенклатура");
вСпр.ИспользоватьРодителя(ВыбГруппа);
вСпр.ВключатьПодчиненные(1);
вСпр.ВыбратьЭлементы();
Пока вСпр.ПолучитьЭлемент()>0 Цикл
Тек=вСпр.ТекущийЭлемент();
Если Тек.ЭтоГруппа()=1 Тогда
Продолжить;
КонецЕсли;
вПериодический=СоздатьОбЪект("Периодический");
// Создаем периодический обЪект.
вПериодический.ИспользоватьОбъект("Себестоимость",Тек);
// Связываем обЪекты.
вПервый=1;
// Для того чтобы не потереть 1-й элемент, тк он достаточно важен, даже если и ноль.
вПериодический.ВыбратьЗначения();
// Открываем выборку значений.
Пока (вПериодический.ПолучитьЗначение()=1) Цикл
// Выбираем значение из списка.
// Не первый элемент.
Если (вПериодический.Значение=0) Тогда
// Удаляем это значение.
вПериодический.Удалить();
Иначе
вПервый=0;
// Пропускаем первое значение.
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
//*******************************************
// Если используете вместо элемента диалога список значений
// ВыбСписок – список значений
Процедура Сформировать()
вСпр=СоздатьОбъект("Справочник.Номенклатура");
вСпр.ВыбратьЭлементы();
Пока вСпр.ПолучитьЭлемент()>0 Цикл
Тек=вСпр.ТекущийЭлемент();
Если ВыбСписок.Принадлежит(Тек)=0 Тогда
Продолжить;
КонецЕсли;
Если Тек.ЭтоГруппа()=1 Тогда
Продолжить;
КонецЕсли;
вПериодический=СоздатьОбЪект("Периодический");
// Создаем периодический обЪект.
вПериодический.ИспользоватьОбъект("Себестоимость",Тек);
// Связываем обЪекты.
вПервый=1;
// Для того чтобы не потереть 1-й элемент, тк он достаточно важен, даже если и ноль.
вПериодический.ВыбратьЗначения();
// Открываем выборку значений.
Пока (вПериодический.ПолучитьЗначение()=1) Цикл
// Выбираем значение из списка.
// Не первый элемент.
Если (вПериодический.Значение=0) Тогда
// Удаляем это значение.
вПериодический.Удалить();
Иначе
вПервый=0;
// Пропускаем первое значение.
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
Удачи!


Консультировал: Gl0betrotter
Дата отправки: 23.11.2006, 19:07

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Ответ # 128121 от Краюшкин Игорь Валерьевич

Здравствуйте, Darina!

Вам надо сделать так:

вПериодический=СоздатьОбЪект("Периодический");
вСпр.ВыбратьЭлементы();
Пока вСпр.ПолучитьЭлемент() = 1 Цикл

// а дальше Ваша обработка
вПериодический.ИспользоватьОбъект("Себестоимость",вСпр.ТекущийЭлемент());
// Связываем обЪекты.
вПервый=1;
// Для того чтобы не потереть 1-й элемент, тк он достаточно важен, даже если и ноль.
вПериодический.ВыбратьЗначения();
// Открываем выборку значений.
Пока (вПериодический.ПолучитьЗначение()=1) Цикл
// Выбираем значение из списка.
// Не первый элемент.
Если (вПериодический.Значение=0) Тогда
// Удаляем это значение.
вПериодический.Удалить();
Иначе
вПервый=0;
// Пропускаем первое значение.
КонецЕсли;
КонецЦикла;
// конец Вашей обработки
КонецЦикла;


Консультировал: Краюшкин Игорь Валерьевич
Дата отправки: 23.11.2006, 21:29

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

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

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос

Время генерирования страницы: 0.14172 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн