Имя: Пароль:
1C
1С v8
Вопрос по запросу
0 Gill
 
15.02.12
16:06
Привет всем! Конфа УСХП 8.1 (сельхоз)...Есть документ "Перемещение животных между фермами".В ТЧ документа указывается животное, корпус и секция куда его перемещают. Секция является подчиненным элементом справочника "Корпуса".Корпус один, а секций как правило много.Задача следующая, как при выборе секции проверять есть ли в ней уже перемещенное когда-то животное или же она свободная.Ну и соответственно запрещать выбор этой секции.Вообще просят,чтобы для выбора отображались только свободные секции.Голову уже сломал, как вывести список незадействованных секций?

       Запрос = Новый Запрос;
       Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
       |    ИнтекоРазмещениеЖивотныхСрезПоследних.Животное КАК Животное,
       |    ИнтекоСостоянияЖивотныхСрезПоследних.СостояниеЖивотного КАК Состояние,
       |    ИнтекоСекции.Ссылка КАК Секция,
       |    ИнтекоРазмещениеЖивотныхСрезПоследних.НомерСекции
       |ИЗ
       |    Справочник.ИнтекоСекции КАК ИнтекоСекции
       |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИнтекоРазмещениеЖивотных.СрезПоследних(&Дата, Организация = &Организация) КАК ИнтекоРазмещениеЖивотныхСрезПоследних
       |            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИнтекоСостоянияЖивотных.СрезПоследних(&Дата, ) КАК ИнтекоСостоянияЖивотныхСрезПоследних
       |            ПО ИнтекоРазмещениеЖивотныхСрезПоследних.Животное = ИнтекоСостоянияЖивотныхСрезПоследних.Животное
       |        ПО ИнтекоРазмещениеЖивотныхСрезПоследних.НомерСекции = ИнтекоСекции.Ссылка
       |ГДЕ
       |    (НЕ ИнтекоСостоянияЖивотныхСрезПоследних.СостояниеЖивотного В
       |                (ВЫБРАТЬ
       |                    ИнтекоСтатусыКРС.Ссылка
       |                ИЗ
       |                    Справочник.ИнтекоСтатусыКРС КАК ИнтекоСтатусыКРС
       |                ГДЕ
       |                    ИнтекоСтатусыКРС.Родитель = &ГруппаВыбывшие))
       |    И ИнтекоРазмещениеЖивотныхСрезПоследних.Ферма = &ФермаКуда
       |    И ИнтекоРазмещениеЖивотныхСрезПоследних.Корпус = &ТекущийКорпус
       |    И (НЕ ИнтекоСекции.ПометкаУдаления)";
       
  Запрос.УстановитьПараметр("ГруппаВыбывшие", Справочники.ИнтекоСтатусыКРС.ВыбывшиеЖивотные);
  Запрос.УстановитьПараметр("Организация",Организация);
  Запрос.УстановитьПараметр("Дата",КонецДня(Дата));
  Запрос.УстановитьПараметр("ФермаКуда",ФермаКуда);
  Запрос.УстановитьПараметр("ТекущийКорпус",ЭлементыФормы.Животные.ТекущиеДанные.КорпусКуда);
 
  Результат = Запрос.Выполнить();
  Выборка = Результат.Выбрать();
1 golden-pack
 
15.02.12
16:11
читал (0) ниче не понял. я туп.
2 Gill
 
15.02.12
16:13
+(1) т.е. мне нужно при подборе секции получить таблицу следующего вида

№ Животное  Корпус  Секция
  10200    Дойный    №1
  50100    Дойный    №2
  30450    Дойный    №3
           Дойный    №4 - вот эту секцию можно подбирать

Или же выводить только незадействованные секции
3 mailwood
 
15.02.12
16:15
(0) На Красных Воротах в Интеко работаешь ?  Ты давно там или летом пришел ?
4 golden-pack
 
15.02.12
16:16
1. Получить список разрешенных секций
2. при выборе секции в процедуре "начало выбора" - стандарт обработка ложь - и выбор из своей тз (что бы не накладывать на отбор по ссылкам на справочник специи, т.к. видимо он большой)


С п.1. выбрать все запрещенные и поместить в ВТ. Далее исключить ...
5 Gill
 
15.02.12
16:16
(3) нет не там...конфа отраслевая - Интеко (неЛужковское) разработчики
6 Жан Пердежон
 
15.02.12
16:17
(15) думаешь тут много спецов по УСХП?)
огласил бы структуру соответствующего регистра (судя по всему это ИнтекоРазмещениеЖивотных)
7 golden-pack
 
15.02.12
16:17
+(4)  не специи а секции)
8 Gill
 
15.02.12
16:20
(6) Структура РС ИнтекоРазмещениеЖивотных(подчинен регистраторам) следующая: Измерения:Животное Ресурсы:Организация,Ферма,Корпус,Секция
9 Gill
 
15.02.12
16:26
(4) С п.1. выбрать все запрещенные и поместить в ВТ. Далее исключить ... = не совсем врубился, это как?
10 Gill
 
15.02.12
16:35
^
11 mailwood
 
15.02.12
16:37
(0) Зачем в запросе выводишь всякую шнягу, если нужны только пустые секции ? Выведи вторым полем еще ЕСТЬNULL(Животное,0). И в обработке запроса отбери, где животные нули.
12 mailwood
 
15.02.12
16:38
Запрос сразу к регистру
13 mailwood
 
15.02.12
16:40
Хотя если пустые, то правильно, к справочнику
14 Жан Пердежон
 
15.02.12
16:41
ВЫБРАТЬ Секции.Ссылка
   ИЗ Справочник.Секции КАК Секции
   ЛЕВОЕ СОЕДИНЕНИЕ
       РегистрСведений.ИнтекоРазмещениеЖивотных.СрезПоследних(&Дата,) КАК ЗанятыеСекции
       ПО Секции.Ссылка = ЗанятыеСекции.Секция
   ГДЕ
       ЗанятыеСеции.Секция IS NULL
15 Gill
 
15.02.12
16:56
(14) почему-то выдает пустой результат, хотя в справочнике "Секции" есть незадействованная секция

       Запрос = Новый Запрос;
       Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                      |    ИнтекоСекции.Ссылка КАК Секция,
                      |    ИнтекоРазмещениеЖивотныхСрезПоследних.НомерСекции
                      |ИЗ
                      |    Справочник.ИнтекоСекции КАК ИнтекоСекции
                      |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИнтекоРазмещениеЖивотных.СрезПоследних(&Дата, Организация = &Организация) КАК ИнтекоРазмещениеЖивотныхСрезПоследних
                      |        ПО ИнтекоСекции.Ссылка = ИнтекоРазмещениеЖивотныхСрезПоследних.НомерСекции
                      |ГДЕ
                      |    ИнтекоРазмещениеЖивотныхСрезПоследних.Ферма = &ФермаКуда
                      |    И ИнтекоРазмещениеЖивотныхСрезПоследних.Корпус = &ТекущийКорпус
                      |    И (НЕ ИнтекоСекции.ПометкаУдаления)
                      |    И ИнтекоРазмещениеЖивотныхСрезПоследних.НомерСекции ЕСТЬ NULL ";
16 Жан Пердежон
 
15.02.12
17:02
(15) у тебя запрос совсем другой

что за НомерСекции
и условия
ИнтекоРазмещениеЖивотныхСрезПоследних.Ферма = &ФермаКуда
И ИнтекоРазмещениеЖивотныхСрезПоследних.Корпус = &ТекущийКорпус
из ГДЕ убери
17 Gill
 
15.02.12
17:05
(16) мне ведь нужно отбирать именно те секции которые подчинены корпусу в табличной части документа
18 Gill
 
15.02.12
17:06
+(17) и еще для конкретной фермы
19 Жан Пердежон
 
15.02.12
17:09
(18) тогда исправь, чтобы условие относилось к справочнику
20 Gill
 
15.02.12
17:10
(16) и всем огромное Спасибо!!! вот так заработало

       Запрос = Новый Запрос;
       Запрос.Текст = "ВЫБРАТЬ РАЗРЕШЕННЫЕ
                      |    ИнтекоСекции.Ссылка КАК Секция
                      |ИЗ
                      |    Справочник.ИнтекоСекции КАК ИнтекоСекции
                      |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ИнтекоРазмещениеЖивотных.СрезПоследних(&Дата, Организация = &Организация) КАК ИнтекоРазмещениеЖивотныхСрезПоследних
                      |        ПО ИнтекоСекции.Ссылка = ИнтекоРазмещениеЖивотныхСрезПоследних.НомерСекции
                      |ГДЕ
                      |    ИнтекоРазмещениеЖивотныхСрезПоследних.НомерСекции ЕСТЬ NULL
                      |    И ИнтекоСекции.Владелец = &ТекущийКорпус
                      |            И ИнтекоСекции.Владелец.Владелец.Ссылка = &ФермаКуда";
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс