Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Периодические реквизиты справочника  (Прочитано 8364 раз)
0 Пользователей и 1 Гость смотрят эту тему.
sss
Специалист

ru
Offline Offline

« : 12-10-2007 04:17 » 

Как программно удалить все значения периодического реквизита справочника ?
Записан

while (8==8)
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 12-10-2007 08:13 » 

Смотри в хелпе:
Периодический, ИспользоватьОбъект(), ВыбратьЗначения(), Удалить()
Записан
sss
Специалист

ru
Offline Offline

« Ответ #2 : 15-10-2007 07:22 » 

Спасибо, посмотрю.

Вот справочник 1SCONST.DBF имеет поля:

OBJID - Ссылка на ID записи справочника, который использует периодические реквизиты
VALUE - Значение
DATE   - Дата установки
ID       - Включает в себя ID справочка ( какой справочник) и ID - периодического значения в этом справочнике.

Вот как получить этот ID???



Записан

while (8==8)
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #3 : 16-10-2007 22:01 » 

1С использует идентификаторы в 36-ричной системе счисления: 0-9A-Z
Уникальный идентификатор объекта можно получить функцией ЗначениеВСтрокуВнутр() (в десятичной системе)
Небольшим преобразованием (с использованием недокументированной функции _IdToStr() ) можно получить идентификатор во внутреннем формате 1С:
Код:
// ===============================
Функция глИдВПоляБД(ВнутрИд, Тип="", Вид="", ОбИд="") Экспорт
Сп=СоздатьОбъект("СписокЗначений");
спВн=СоздатьОбъект("СписокЗначений");
спВн.ИзСтрокиСРазделителями(Сред(ВнутрИд,2,СтрДлина(ВнутрИд)-2));
Тип=спВн.ПолучитьЗначение(1);
Вид=спВн.ПолучитьЗначение(4);
ОбИд=спВн.ПолучитьЗначение(7);
Если (Число(Вид)=0) И (СтрДлина(ОбИд)>13) Тогда
Вид=Лев(ОбИд,СтрДлина(ОбИд)-13);
ОбИд=Прав(ОбИд,13);
КонецЕсли;
Вид=Прав(_IdToStr(Число(Вид)),4);
ОбИд=_IdToStr(Число(Лев(ОбИд,СтрДлина(ОбИд)-3)))+Прав(ОбИд,3);
Сп.ДобавитьЗначение(Тип);
Сп.ДобавитьЗначение(Вид);
Сп.ДобавитьЗначение(ОбИд);
Возврат Сп;
КонецФункции
Эта функция возвращает список значений из 3-х идентификаторов: Тип, Вид и Объект; и кроме того может вернуть значение через соответствующий параметр. Примеры возможных форматов вызова:
Код:
Сп=глИдВПоляБД(Спр.ТекущийЭлемент());
глИдВПоляБД(Спр.ТекущийЭлемент(),,ИдВид);
глИдВПоляБД(Спр.ТекущийЭлемент(),,,Идент);
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines