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

Хранилище

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

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



> Присвоить значение Неопределено (или "", или Пустая ссылка) некорректным ссылкам          
Constantus Подменю пользователя
сообщение 07.08.19, 7:38
Сообщение #1

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Приветствую, Форумчане!
1с8.3.12, самопис, БСП, УФ

В запросе СКД из регистра накопления "ДвиженияТМЦ" берутся данные:

ВЫБРАТЬ
    ДвижениеТМЦОстаткиИОбороты.Заказ,
    ДвижениеТМЦОстаткиИОбороты.Модель,
    ДвижениеТМЦОстаткиИОбороты.Размеры,
    ДвижениеТМЦОстаткиИОбороты.Полировка,
        **************************
ИЗ
    РегистрНакопления.ДвижениеТМЦ.ОстаткиИОбороты(


Из-за косяков предшественников значения Заказ (документ), Модель, Размеры, Полировка (справочники) могут принимать разные значения: Ссылка, NULL, Неопределено, ""... Исправить документы бросающие в регистр данные пока не представляет возможным, тем более ссылки древних периодов...

Как можно в запросе СКД написать следующее типа:

1. Если ДвижениеТМЦОстаткиИОбороты.Заказ не является ссылкой на документ, тогда принимать значение Неопределено (или "", или Пустая ссылка)
2. Если ДвижениеТМЦОстаткиИОбороты.Размеры не является ссылкой на справочник, тогда принимать значение Неопределено (или "", или Пустая ссылка)?

Constantus @ Сегодня, 10:01 * ,

Справочники составные и их много:

ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ДвижениеТМЦОстаткиИОбороты.Размеры) = ТИП(Справочник.01)
***************


Наверняка загрузит отчет на выполнение...

pablo Подменю пользователя
сообщение 07.08.19, 8:23
Сообщение #2

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

1. Если ДвижениеТМЦОстаткиИОбороты.Заказ не является ссылкой на документ
не ДвижениеТМЦОстаткиИОбороты.Заказ Ссылка документ.Заказ


2. Если ДвижениеТМЦОстаткиИОбороты.Размеры не является ссылкой на справочник,
не ДвижениеТМЦОстаткиИОбороты.Размеры ссылка Справочник.Размеры



Но я вижу проблемы с логикой - что считать неправильными значениями


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Vofka Подменю пользователя
сообщение 07.08.19, 8:25
Сообщение #3

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

ВЫБОР
   КОГДА ДвижениеТМЦОстаткиИОбороты.Заказ ССЫЛКА Документ.ЗаказПокупателя Тогда ДвижениеТМЦОстаткиИОбороты.Заказ
   ИНАЧЕ Неопределено
КОНЕЦ КАК Заказ


Со справочником аналогично.

Constantus Подменю пользователя
сообщение 07.08.19, 8:47
Сообщение #4

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Vofka @ Сегодня, 11:25 * ,


А если справочники составные и их много (7 штук)?

ВЫБОР
   КОГДА ДвижениеТМЦОстаткиИОбороты.Модель ССЫЛКА Справочник.Справочник01 Тогда ДвижениеТМЦОстаткиИОбороты.Модель
  
   КОГДА ДвижениеТМЦОстаткиИОбороты.Модель ССЫЛКА Справочник.Справочник02 Тогда ДвижениеТМЦОстаткиИОбороты.Модель
  
   КОГДА ДвижениеТМЦОстаткиИОбороты.Модель ССЫЛКА Справочник.Справочник03 Тогда ДвижениеТМЦОстаткиИОбороты.Модель
   ИНАЧЕ Неопределено
КОНЕЦ КАК Заказ


Эта конструкция сильно будет грузить выполнение запроса?

ВЫБОР
    КОГДА ТИПЗНАЧЕНИЯ(ДвижениеТМЦОстаткиИОбороты.Модель) = ТИП(Справочник.01)
        ТОГДА ДвижениеТМЦОстаткиИОбороты.Модель

    КОГДА ТИПЗНАЧЕНИЯ(ДвижениеТМЦОстаткиИОбороты.Модель) = ТИП(Справочник.02)
        ТОГДА ДвижениеТМЦОстаткиИОбороты.Модель


    ИНАЧЕ
      Неопределенно
КОНЕЦ


А данная конструкция насколько оптимально и как повлияет на время выполнения отчета?

pablo Подменю пользователя
сообщение 07.08.19, 8:50
Сообщение #5

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

В типовых встречаются проверки на пустое значение по типу
ВЫБОР    КОГДА ДвижениеТМЦОстаткиИОбороты.Модель В (&ПустойМассив) тогда неопределено иначе ДвижениеТМЦОстаткиИОбороты.Модель конец

При этом в пустой массив загоняются все возможные пустые ссылки


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Petre Подменю пользователя
сообщение 07.08.19, 8:53
Сообщение #6

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2905
Из: Київ, Україна
Спасибо сказали: 1147 раз
Рейтинг: 1228.9

Constantus @ Today, 8:47 * ,
Нет прямой зависимости производительности запроса от количества текста. Когда речь идет о составных типах, всегда готовьтесь к "многа букв".
Но ответ на вопрос зависит от того, что дальше делаете с выборкой.


Signature
Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія".

Constantus Подменю пользователя
сообщение 07.08.19, 9:02
Сообщение #7

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

pablo @ Сегодня, 11:50 * ,


А как в пустой массив в СКД загнать список этих пустых ссылкок?
В параметры СКД?

pablo Подменю пользователя
сообщение 07.08.19, 9:06
Сообщение #8

Старейшина
********
Группа: Команда (модераторы)
Сообщений: 1116
Из: Одесса-Луганск
Спасибо сказали: 192 раз
Рейтинг: 0

Процедура модуля отчета
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)    
Масс=новый массив;
  Масс.Добавить(Справочники.Размеры.ПустаяСсылка());
...
       ТекНастройки=КомпоновщикНастроек.ПолучитьНастройки();
    ТекНастройки.ПараметрыДанных.УстановитьЗначениеПараметра("ПустойМассив",Масс);
  КомпоновщикНастроек.ЗагрузитьНастройки(ТекНастройки);


Сообщение отредактировал pablo - 07.08.19, 9:07


Signature
Правильно поставленный вопрос содержит до 90% ответа.

Vofka Подменю пользователя
сообщение 07.08.19, 9:15
Сообщение #9

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 13955
Из: Киев
Спасибо сказали: 4519 раз
Рейтинг: 3641.2

Цитата(Constantus @ 07.08.19, 9:47) *
А если справочники составные и их много (7 штук)?

http://pro1c.org.ua/index.php?showtopic=21922

Constantus Подменю пользователя
сообщение 07.08.19, 10:49
Сообщение #10

Ветеран
*******
Группа: Пользователи
Сообщений: 962
Спасибо сказали: 8 раз
Рейтинг: 0

Vofka @ Сегодня, 12:15 * ,


ВЫБОР КОГДА ДвижениеТМЦОстаткиИОбороты.Заказ.Ссылка IS NULL ТОГДА Неопределено ИНАЧЕ ДвижениеТМЦОстаткиИОбороты.Заказ КОНЕЦ


только таким образом сработало в моем случае

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


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

 

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