24.07.06 — 17:27
в запросе использую Период с НачДата по КонДата
но реквизит в запросе получается неправильный
например на начало дня он был установлен один а на конец другой
в запросе выбирается тот что был установлен на начало дня… как получить который на конец дня?
1 — 24.07.06 — 17:28
Потому что он в таблице выше, хаха
2 — 24.07.06 — 17:29
(1) и чо делать?
3 — 24.07.06 — 17:29
а никак не получишь :-))
такая вот семерка веселая
4 — 24.07.06 — 17:30
(3) Чо даже перебором не получишь?
5 — 24.07.06 — 17:30
(2) Использовать прямые запросы или
вычислять значение периодических реквизитов при раскрытии группировки
6 — 24.07.06 — 17:31
(4) Имелось ввиду семерочным запросом
7 — 24.07.06 — 17:32
короче не все так просто у меня в этом же запросе по этому реквизиту условие — отбирать доки только у которых данный периодический реквизит = определенному значению
8 — 24.07.06 — 17:33
(7) Так получи значение реквизита до запроса.
9 — 24.07.06 — 17:34
(7) Извини, не понял… Док меняет справочник??? Какой периодический реквизит у документов???
10 — 24.07.06 — 17:34
(7) Запрос — в студию :-))
Укажи какя именно переменная запроса — периодическая
11 — 24.07.06 — 17:35
|Период с НачДата по КонтрДата;
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|Без итогов;
|ТребованиеДетали = Документ.ТребованиеДетали.ТекущийДокумент;
|ДатаТребования = Документ.ТребованиеДетали.ДатаДок;
|Марка = Документ.ТребованиеДетали.Заявка.Модель.Марка;
|Контрагент = Документ.ТребованиеДетали.Заявка.Контрагент;
|ПриемныйПункт = Документ.ТребованиеДетали.Заявка.ПриемныйПункт;
|Модель = Документ.ТребованиеДетали.Заявка.Модель;
|Заявка = Документ.ТребованиеДетали.Заявка;
|ФлагОжидания = Документ.ТребованиеДетали.Заявка.ДопРекв.ФлагОжидания;
|СервисЦентр = Документ.ТребованиеДетали.РемОперация.СервисЦентр;
|Статус = Документ.ТребованиеДетали.Статус;
|Деталь = Документ.ТребованиеДетали.Деталь;
|Количество = Документ.ТребованиеДетали.Количество;
|СтатусВСЦ = Документ.ТребованиеДетали.Заявка.ДопРекв.СтатусВСЦ;
|Группировка Марка без групп;
|Группировка Модель без групп;
|Группировка Заявка без групп;
|Группировка ТребованиеДетали без групп;
|Группировка Количество без групп;
|Группировка Деталь без групп;
|Группировка СтатусВсц;
|Условие((Статус=Перечисление.СтатусыТребований.Затребовано) ИЛИ (Статус=Перечисление.СтатусыТребований.ЗатребованВозврат));
|Условие(СтатусВСЦ=Перечисление.СтатусыЗаявкиВСЦ.ВОжидании);
СтатусВСЦ это и есть эта долбаная переменная, а без нее никак
12 — 24.07.06 — 17:36
(9) У документа есть справочник который хранит некоторые значения в переодике
13 — 24.07.06 — 17:44
(11) Ты это так не получишь, если у тебя значение может меняться в течение дня.
14 — 24.07.06 — 17:46
(13) зато прямым запросом получишь мгновенно :-))
15 — 24.07.06 — 17:47
(14) просвяти как?
16 — 24.07.06 — 17:47
например, используй ВК 1С++
17 — 24.07.06 — 17:48
(14) Слушай, а ты откуда такой умный взялся?
18 — 24.07.06 — 17:49
(16) дык пользую, получать из 1CConst через left join?
19 — 24.07.06 — 17:49
Сам посмотри — какова идея твоего запроса??
Да и вот вопрос, что бы такое это означало:
Группировка ТребованиеДетали без групп
20 — 24.07.06 — 17:49
(18) Зачем join???
21 — 24.07.06 — 17:50
Взял попкорн.
22 — 24.07.06 — 17:50
(17) а у нас все так пиарятся… и не только директоры :-)) 5-го августа узнаешь :-))
23 — 24.07.06 — 17:51
(22) Не узнаю. Я не поеду.
24 — 24.07.06 — 17:51
(18) Используй временные таблицы для фильтра по документам
25 — 24.07.06 — 17:52
(23) … и зря не поедешь :-))
26 — 24.07.06 — 17:52
(24) И на сколько обязательно юзать временную таблицу в его варианте запроса?
(25) я не существую, инфу поменял.
27 — 24.07.06 — 17:54
(26) — для наглядности лучше. Наложение условий на заявку — не вложенный select.
Да и с временными таблицами проще запрос отладить нежели вслепую.
Опять же, непонятно, какова цель запроса
28 — 24.07.06 — 17:55
(26) Про инфу не понял, извини, дружище
29 — 24.07.06 — 17:56
(19) идея такова — найти документы ТребованияДетали попадающие под действия фильтров
30 — 24.07.06 — 17:57
(27) А чего в этом запросе отлаживать? Он довольно простой, просто большой.
К тому же, ты ничего не знаешь насчёт группировок, как он их будет использовать дальше.
31 — 24.07.06 — 17:59
(29) Тогда смысл сводится к следующему:
1. Создать фильтры в виде временных таблиц
2. Дернуть доки с учетом фильтра
3. Оптимизировать запрос
Итого на все про все минут 20
32 — 24.07.06 — 18:01
(30) А мне и не надо знать — завки или что-нить там исчо можно сгруппировать встроенными средствами 1С.
С другой стороны, можно написать функцию, возвращающую значения фильтра — возвращаемое значение — заявка
33 — 24.07.06 — 18:01
+(32) По СтатусВСЦ
34 — 24.07.06 — 18:01
это очень универсальный отчет вывод группировок и условия отбора задаются в самой форме отчета — возможны 3 группировки Марка,Модель,Деталь и условия отбора это все переменные перечисленные в запросе — возможно такое сделать через ТЗ?
35 — 24.07.06 — 18:02
(32) Я имел ввиду Группировка в запросе 1С. Только без «без групп».
36 — 24.07.06 — 18:02
(34) — пиши функцию, возвращающую фильтр по периодике
37 — 24.07.06 — 18:03
(36) А дату он откуда брать будет?
38 — 24.07.06 — 18:05
(37) а откуда она в запросе берется???
39 — 24.07.06 — 18:06
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
Прикольно.
Ещё 4 точки тоже прикольно к СтатусВСЦ.
(38) А ему надо на дату конца или чо? Я уже забыл.
40 — 24.07.06 — 18:07
(39) Я так понял, что по всем в ожидании за период
41 — 24.07.06 — 18:08
(40) на дату конца
42 — 24.07.06 — 18:09
(41) Совсем просто
43 — 24.07.06 — 18:10
(42) Ну так напиши ему. Уже 50 постов скоро, а кроме понтов от тебя ничего нет
44 — 24.07.06 — 18:11
да напишите мне плиз, а то просто — просто
45 — 24.07.06 — 18:11
(43) Не в понтах дело… Ты сам-то задачу понял до конца?
Я — нет. Что писать? Как дернуть из констант значение на заданную дату?
46 — 24.07.06 — 18:12
(39) По сравнению с прикольностью самого «статуса» это вообще ничего
47 — 24.07.06 — 18:13
(45) это не константа, это периодическое значение справочника проблема в том что гребаный 1С в запросе получает значение на начало дня, а не на конец
48 — 24.07.06 — 18:13
Никак.Впрочем,ИМХО.
49 — 24.07.06 — 18:13
(45) У него на одну дату у периодического реквизита ставится несколько значений. Посмотри в таблице как оно выглядит блин, умник!
А ему надо получить то значение, которое по его мнению ставится на конец даны ДатаКонца.
50 — 24.07.06 — 18:15
(49) так как ты не старайся — ты получишь значение на конец дня. потому как в 7.7 нет времени периодики, есть только дата
51 — 24.07.06 — 18:15
Однако, товарищи, моно заюзать регистр
52 — 24.07.06 — 18:16
(49) Я-то как раз умник. На дату — два значения? Ок. Поле Time я откуда увижу?
Как меняется реквизит? Документами?
Много инфы, директор,а?
53 — 24.07.06 — 18:17
(52) да документами
54 — 24.07.06 — 18:17
(52) да какая разница нафик? читай 50 и думай
55 — 24.07.06 — 18:17
(50) Поля TIME и DOCID перестали существовать???
56 — 24.07.06 — 18:17
(53) объект «периодический» вам что нибудь говорит?
57 — 24.07.06 — 18:18
(53) Задним числом проводятся? Реквизит виден по последовательности документов?
58 — 24.07.06 — 18:18
(55) а получи их средствами 1С….. напрямую? а зачем? всё равно рулит значение на конец дня….. так что — чисто спортивный интерес удовлетворить?
59 — 24.07.06 — 18:20
(52) Если ты не заметил, то приведённый выше автором запрос написан не на SQL.
60 — 24.07.06 — 18:21
Не пойму, вы все тупые или прикалываетесь?
61 — 24.07.06 — 18:22
(59) Так и задача изначально «размыта» —
«но реквизит в запросе получается неправильный
например на начало дня он был установлен один а на конец другой
в запросе выбирается тот что был установлен на начало дня… как получить который на конец дня?»
Какого дня? там две даты.
На КонтрДата?
Тогда, согласись, скуль никчему — отдельный одинэсовский запрос-фильтр
62 — 24.07.06 — 18:24
(61) Я уже уточнял какой даты.
63 — 24.07.06 — 18:25
(60) Тупые
Решение — в (51)
64 — 24.07.06 — 18:26
(63) Умный. Ну-ка движение по регистрам непроведнного документа в студию
65 — 24.07.06 — 18:27
(64) Без проблем. Сейчас в моде движений удалённого документа по перечислениям. А твоя задача уже многолетний баян.
66 — 24.07.06 — 18:28
(62) Неясно по какому принципу «рассаживаются» значения статуса в одном дне по полю TIME или по последовательности
67 — 24.07.06 — 18:29
(65) По регистрам???
68 — 24.07.06 — 18:30
(65) Тогда что же ты, мил человек, пиаришься — напиши сам.
69 — 24.07.06 — 18:30
(64) Почему именно непроведенного? ВыборГруппы() сможет как-то решить проблему?
70 — 24.07.06 — 18:33
(69) Ага… На определение переменной глянь
71 — 24.07.06 — 18:33
(68) Я не пиарюсь, мне по фиг. Ты тут про поля TIME и IDDOC, временные таблицы говорил, ещё какие-то страшные слова, вот ты и отвечай. Я вообще не в курсе, что это такое.
(69) Вот, наконец-то умный человек пришёл.
72 — 24.07.06 — 18:34
(70) А релиз-то у тебя какой?!
73 — 24.07.06 — 18:39
(70) Что есть «определение переменной»?
74 — 24.07.06 — 18:40
(72) с 15,17,19,20,24,25 SQL
говорю же нет под рукой.
75 — 24.07.06 — 18:41
(73) см (12)
|Период с НачДата по КонтрДата;
|ОбрабатыватьДокументы все;
|Обрабатывать НеПомеченныеНаУдаление;
|Без итогов;
|ТребованиеДетали = Документ.ТребованиеДетали.ТекущийДокумент;
Т.е. ТребованиеДетали это документ
76 — 24.07.06 — 18:44
(71) смотри пост (18). Раз использует — значит может сам написать.
77 — 24.07.06 — 18:49
(71) Приехал бы 5-го в Москву! Прошу прощения за ОФФ.
78 — 24.07.06 — 18:49
(77) не говори
79 — 24.07.06 — 18:51
(77) Зачем?
80 — 24.07.06 — 19:09
офф: гениальная ветка.. особо если учесть название: «Периодический реквизит в запросе» :)))
81 — 24.07.06 — 19:11
(80) мне тоже нравится
82 — 24.07.06 — 19:11
(79)Выпили бы! Посмотрели на мардализации друг друга! Чем плохо?
83 — 24.07.06 — 19:19
офф: а у нас на соседней улице открыли погребок кубанских вин.. взял «портвейн 22» не знаю что еть такое (точно не портвейн) — но рульная штука. всем рекомендую.. %) сорри, если что не так..
84 — 25.07.06 — 07:12
-> например на начало дня он был установлен один а на конец другой
Гы, гы, гы: Учи матчасть Йожэг, периодичность периодического (тавтология однако реквизита в 7.7 — 1 день(сутки). Не може у него быть разных значений на одну дату. А запрос выбирает значение на дату конца периода по которому этот запрос выполняется.
85 — 25.07.06 — 08:24
(84) пер. реквизит в 7.7 можно установить с точностью до секунды — другое дело что штатныные Установить() и Получить() работают с датой, а не с секундой, но и это при желании можно обойти
86 — 25.07.06 — 08:25
(+85) Попробую телепата крикнуть
периодический реквизит время секунда
ТелепатБот, ответь!
87 — 25.07.06 — 08:25
88 — 25.07.06 — 08:38
Если юзаешь 1С++, смотри в доке по доступу к БД $ПоследнееЗначение
89 — 25.07.06 — 08:43
(84), (85) — периодический реквизит в 1С 77 можно устанавливать с точностью до позиции документа.
Rovan
90 — 25.07.06 — 08:54
(89) Точно!
AndyG, эта конфа осталась от предыдущего программера. а периодический реквизит уже существует. так что проблема выбора у меня не стоит что есть то и надо.
У меня возник такой вопрос.
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос
Запрос = СоздатьОбъект(«Запрос»);
ТекстЗапроса =
«//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|ОбрабатыватьДокументы все;
|Долг = Справочник.Сотрудники.Долг; // это периодический реквизит
|Группировка Долг;
|Условие(Долг>0);
|»//}}ЗАПРОС
;
// Если ошибка в запросе, то выход из процедуры
Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
Возврат;
КонецЕсли;
// Подготовка к заполнению выходных форм данными запроса
Таб = СоздатьОбъект(«Таблица»);
Таб.ИсходнаяТаблица(«Сформировать»);
// Заполнение полей «Заголовок»
Таб.ВывестиСекцию(«Заголовок»);
Состояние(«Заполнение выходной таблицы…»);
Таб.Опции(0, 0, Таб.ВысотаТаблицы(), 0);
Пока Запрос.Группировка(1) = 1 Цикл
// Заполнение полей Код
Таб.ВывестиСекцию(«Код»);
КонецЦикла;
// Вывод заполненной формы
Таб.ТолькоПросмотр(1);
Таб.Показать(«Сформировать», «»);
при таком коде, т.е. используется только один периодический реквизит запрос срабатывает и
выдает результат на начало выбранного промежутка времени. скажите это глюк? или я чего то не понял.
-
Есть такая задача: нужно запросить элемены справочника со значениями периодических реквизитов, установленных в определенном периоде. Например, я формирую запрос за период июль месяц 2007 года. Если для элемента справочника установлено значение периодического реквизита июльской датой, то это значение должно попасть в результат запроса, а если значение записано допустим в июне, а позже ничего нового не записывалось, то в данном случае в запрос ничего не должно попасть.
-
Offline
Snake-84
Опытный в 1С- Регистрация:
- 28 янв 2007
- Сообщения:
- 110
- Симпатии:
- 0
- Баллы:
- 26
Если не сложно, покажи как, а то самому такое скоро предстоит
-
Создаешь внешнюю функцию для проверки даты ввода значения периодического реквизита, вот моя:
Функция Актуальность(Элемент)
ОП = СоздатьОбъект(«Периодический»);
ОП.ИспользоватьОбъект(«ПланПродаж», Элемент);
ОП.ВыбратьЗначения();
Пока ОП.ПолучитьЗначение() = 1 Цикл
//ДатаНачала — дата начала отчета.
//В моем случае может быть только одна запись за месяц
Если НачМесяца(ОП.ДатаЗнач) = НачМесяца(ДатаНачала) Тогда
Возврат 1;
КонецЕсли;
КонецЦикла;
Возврат 0;
КонецФункцииВ запросе создаешь дополнительное условие
|ТекЭлемент = Справочник.ПланДляКонтрагента.ТекущийЭлемент;
|Условие (Актуальность(ТекЭлемент) = 1);
Ввод записей в журнал расчетов 1
Добавление записи в журнал расчетов:
Метод Новая может быть вызван где угодно, в глобальном модуле, модуле обработок, документов и т.д.
Данный метод проверяет корректность заполненных реквизитов журнала расчетов. При вводе новых записей журнал
Внешние источники данных 0
Почему данная возможность вызывает такой интерес? Любой человек, который программировал в 1С при этом достаточно неплохо знаком с SQL и хотя бы в общих чертах знаком с архитектурой и принципами разработки других технологических платформ для бизнес пр
Выборка (перебор) бизнес-процессов 0
Выбрать( , , , )
отбора
отбора
(необязательный) — Структура. Задает реквизит вида расчета и значение этого реквизита, по которому будет создана выборка. Ключ структуры задает имя реквизита, а значение структуры — значение отбора по этому рекви
Выборка (перебор) видов расчета 0
Выбрать( , )
(необязательный) — Структура. Задает реквизит вида расчета и значение этого реквизита, по которому будет создана выборка. Ключ структуры задает имя реквизита, а значение структуры — значение отбора по этому реквизиту. В качестве рекви
Выборка запросом, перебор задач 1
Выбрать( Отбор , Порядок )
Отбор (необязательный) — Структура. Задает реквизит вида расчета и значение этого реквизита, по которому будет создана выборка. Ключ структуры задает имя реквизита, а значение структуры — значение отбора по этому рекви
Посмотреть все результаты поиска похожих