Имя: Пароль:
1C
1С v8
проверка на запист в регистре сведений
0 JustGuest
 
10.05.17
14:46
Привет всем.
Вопрос.


Как можно проверить на существующую запись по измерению ?

То есть ,  я создаю менеджер записи, делаю запись, но если она там была, то вроде как затирается и создается с новыми реквизитами;.
1 Heckfy
 
10.05.17
14:48
Стандартно: Запросом.
2 Ц_У
 
10.05.17
14:50
(0) МенеджерЗаписи.выбран()?
3 JustGuest
 
10.05.17
15:08
(1) Думал есть способ проще =)

(2) спс, гляну СП , может прочитать и выбран то что надо будет
4 AlvlSpb
 
10.05.17
15:43
Отбор = Новый Структура("ИмяИзмерения", ЗначениеИзмерения);
ЗначенияРесурсов = РегистрыСведений.НашРегистр.Получить(Отбор);
5 Лефмихалыч
 
10.05.17
15:55
куда уж проще!


Измерения = новый Структура("Валюта", Константы.ВалютаУправленческогоУчета.Получить());

Если ЕстьЗаписьВРегистреПоИзмерениям("КурсыВалют", Измерения) Тогда
   Сообщить("Есть запись");
КонецЕсли;


Функция ЕстьЗаписьВРегистреПоИзмерениям(ИмяРегистра, Измерения)
    Запрос = Новый Запрос;

    Поле = "";
    ТекстГде = "";
    Для Каждого КлючЗначение из Измерения Цикл
        ТекстГде = ТекстГде + Символы.ПС + КлючЗначение.Ключ + " = &"+КлючЗначение.Ключ;
        Поле = КлючЗначение.Ключ;
        Запрос.УстановитьЗначениеПараметра(КлючЗначение.Ключ, КлючЗначение.Значение);
    КонецЦикла;
    ТекстГде = СтрЗаменить(СокрЛП(ТекстГде), Символы.ПС, " И ");

    Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 1 "+Поле+" ИЗ Регистрсведений."+ИмяРегистра+" ГДЕ "+ТекстГде;
    Возврат не Запрос.Выполнить().Пустой();
КонецФункции    


гыгыгы
6 HardBall
 
10.05.17
16:08
Спасибо.
А мы вот так.
"ВЫБРАТЬ РАЗЛИЧНЫЕ 1 КАК П1 ....
Закон Брукера: Даже маленькая практика стоит большой теории.