8.х Проблема с выборкой

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Вселенная, 11 фев 2010.

  1. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Пишу такие запросы, хочу заполнить реквизит справочника. Но у меня весь столбец заполняется нулем. Не пойму, почему.
    Код:
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("НачДня",НачалоДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("КонДня",КонецДня(ТекущаяДата()));
    Запрос.Текст = "ВЫБРАТЬ
    |    ДорожкиБассейна.Ссылка,
    |    СУММА(ПриложениеКДоговоруДниНедели.КоличествоЧеловек) КАК Сумма,
    |    ПриложениеКДоговоруДниНедели.Дорожка
    |ИЗ
    |    Справочник.ДорожкиБассейна КАК ДорожкиБассейна
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриложениеКДоговору.ДниНедели КАК ПриложениеКДоговоруДниНедели
    |        ПО ДорожкиБассейна.Ссылка = ПриложениеКДоговоруДниНедели.Дорожка
    |ГДЕ
    |    ПриложениеКДоговоруДниНедели.Ссылка.Дата МЕЖДУ &НачДня И &КонДня
    |
    |СГРУППИРОВАТЬ ПО
    |    ДорожкиБассейна.КоличествоЧеловек,
    |    ДорожкиБассейна.Ссылка,
    |    ПриложениеКДоговоруДниНедели.Дорожка";
    
    Выб = Запрос.Выполнить().Выбрать();			   
    Выборка = Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Дорожка");
    
    Запрос.Текст = "ВЫБРАТЬ
    |    ДорожкиБассейна.Ссылка,
    |    ДорожкиБассейна.Наименование
    |ИЗ
    |    Справочник.ДорожкиБассейна КАК ДорожкиБассейна";
    
    Выборка1 = Запрос.Выполнить().Выбрать();
    
    Пока Выборка1.Следующий() Цикл
    СпрОбъект = Выборка1.Ссылка.ПолучитьОбъект();
    Если Выборка.Найти(Выборка1.Наименование) = Неопределено  Тогда 
    СпрОбъект.КоличествоЧеловек = 0
    Иначе СпрОбъект.КоличествоЧеловек = Выб.Сумма;
    КонецЕсли;     
    СпрОбъект.Записать();
    КонецЦикла;
    
    
    
  2. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    Выборка.Найти(Выборка1.Наименование) = Неопределено т.к. у тебя не перебираются строки запроса Выборка
    эффективнее объединить эти 2 запроса в 1
  3. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    А как ее перебрать?
    Код:
    Пока Выборка1.Следующий() Цикл
    СпрОбъект = Выборка1.Ссылка.ПолучитьОбъект();
    Пока Выборка.Следующий() Цикл
    Если Выборка.Найти(Выборка1.Наименование) = Неопределено  Тогда 
    СпрОбъект.КоличествоЧеловек = 0
    Иначе СпрОбъект.КоличествоЧеловек = Выб.Сумма;
    КонецЕсли;	 
    СпрОбъект.Записать();
    КонецЦикла;
    КонецЦикла;
    
    
    Так не получается. Ругается на Следующий().
  4. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    Код:
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("НачДня",НачалоДня(ТекущаяДата()));
    Запрос.УстановитьПараметр("КонДня",КонецДня(ТекущаяДата()));
    Запрос.Текст = "ВЫБРАТЬ
    |    ДорожкиБассейна.Ссылка КАК Дорожка,
    |    СУММА(ПриложениеКДоговоруДниНедели.КоличествоЧеловек) КАК КоличествоЧеловек
    |ИЗ
    |    Справочник.ДорожкиБассейна КАК ДорожкиБассейна
    |        ЛЕВОЕ СОЕДИНЕНИЕ Документ.ПриложениеКДоговору.ДниНедели КАК ПриложениеКДоговоруДниНедели
    |        ПО ДорожкиБассейна.Ссылка = ПриложениеКДоговоруДниНедели.Дорожка
    |ГДЕ
    |    ПриложениеКДоговоруДниНедели.Ссылка.Дата МЕЖДУ &НачДня И &КонДня
    |
    |СГРУППИРОВАТЬ ПО
    |    ДорожкиБассейна.КоличествоЧеловек,
    |    ДорожкиБассейна.Дорожка";
    
    Выб = Запрос.Выполнить().Выбрать();    
    Пока Выборка.Следующий() Цикл
    Если Выборка.Дорожка.Наименование = Неопределено  Тогда 
    СпрОбъект.КоличествоЧеловек = 0;
    Иначе СпрОбъект.КоличествоЧеловек = Выб.КоличествоЧеловек;
    КонецЕсли;     
    СпрОбъект.Записать();
    КонецЦикла;
    
    
    
    
    попробуй так
  5. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Так не получится. Мне нужно выбрать документы ПриложеникКДоговору на текущую дату и заполнить количество человек (в справочнике ДорожкиБассейна) на текущую дату. А остальные дорожки (которых нет в документах) приравнять к нулю.
  6. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    у тебя в справочнике ДорожкиБассейна постоянно меняется значения реквизита количества человек, я правильно понял?
  7. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Да всё правильно. Я это заполнение делаю при открытии формы справочника (когда заполняю реквизит Дорожка(документа))
  8. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    чует моё сердце, что как то криво построена конфигурация............
    ты её с 0 пишешь или это какая то отраслевая?
  9. TopicStarter Overlay
    Вселенная
    Offline

    Вселенная Опытный в 1С

    Регистрация:
    4 ноя 2009
    Сообщения:
    176
    Симпатии:
    0
    Баллы:
    26
    Нормальная конфигурация. Бухгалтерия, доработанная для бассейна.
  10. wertklop
    Offline

    wertklop Опытный в 1С

    Регистрация:
    12 май 2008
    Сообщения:
    321
    Симпатии:
    0
    Баллы:
    26
    если хочешь, могу помочь в доработке. пиши в личку

Поделиться этой страницей