Имя: Пароль:
1C
1С v8
Вот теперь еще одна проблема по выбору документов
0 alonesl
 
15.11.13
13:21
Здравствуйте, уважаемые Мастера и Гуру!

Зарплата и Управление Персоналом, редакция 2.5 (2.5.69.3)
1С:Предприятие 8.2 (8.2.18.61)

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

    Запрос.УстановитьПараметр("ДатаНачала", ДатаНач);
    Запрос.УстановитьПараметр("ДатаОкончания", ДатаКон);

    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выбрать();

    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        
        Сообщить("!!!");
        
    КонецЦикла;


Не выбирает вообще ничего!
1 Господин ПЖ
 
15.11.13
13:23
ОтпускаОрганизаций.РаботникиОрганизации.ДатаНачала = &ДатаНачала
        |    И ОтпускаОрганизаций.РаботникиОрганизации.ДатаОкончания = &ДатаОкончания";

гламурненько
2 IamAlexy
 
15.11.13
13:23
почему ты даты сравниваешь на равенство ?

у тебя в отчет "за октябрь" попадут тогда строго те у кого отпуск начинается строго первого октября а заканчивается строго 31 октября
3 George Wheels
 
15.11.13
13:24
А отпуск черный или белый?
4 skunk
 
15.11.13
13:24
нефиха не понял ...но думаю

косяк тут

|    ОтпускаОрганизаций.РаботникиОрганизации.ДатаНачала = &ДатаНачала
|    И ОтпускаОрганизаций.РаботникиОрганизации.ДатаОкончания = &ДатаОкончания";
[1/c]

надо как то так

|    ОтпускаОрганизаций.РаботникиОрганизации.ДатаНачала > &ДатаНачала
|    И ОтпускаОрганизаций.РаботникиОрганизации.ДатаОкончания < &ДатаОкончания";
[1/c]
5 alonesl
 
15.11.13
13:24
(2) Моп ёкарный бабай!!! Ну конечно!!!!
6 User_Agronom
 
15.11.13
13:25
(0) С лыжами всё в порядке похоже
(2) Там и время ещё есть.
7 Любопытная
 
15.11.13
13:25
ОтпускаОрганизаций.РаботникиОрганизации.ДатаНачала = &ДатаНачала
        |    И ОтпускаОрганизаций.РаботникиОрганизации.ДатаОкончания = &ДатаОкончания
это просто чудесно
8 Wobland
 
15.11.13
13:26
это называется отпуск-невидимка
9 alonesl
 
15.11.13
13:26
Ну точно!!! Ох, блин, совсем лыжи у меня не едут!!! :)) Спасибо огромное Вам всем!!!
10 alonesl
 
15.11.13
14:00
Вот еще усложение: В цикле Пока ВыборкаДетальныеЗаписи.Следующий() получаю непосредственно документ. Вчера прекрасно получал значение из документа (правда, он был в элементе на форме) методом "Сумма = ДокОтпуска.Начисления[0].Результат; А сейчас пишет что "Нет такого поля."
Сейчас выглядит так:
ВыборкаДетальныеЗаписи.Начисления[0].Результат;
или так: ВыборкаДетальныеЗаписи.Ссылка.Начисления[0].Результат;
Говорит что нет такого поля :(
11 Wobland
 
15.11.13
14:04
я уверен, что эта выборка не рассчитана на запрос из (0)
12 Wobland
 
15.11.13
14:04
(11) но не очень
13 Пеппи
 
15.11.13
14:07
(11) да да, нужно вернуть выборку на место, туда где ее и взял :)
14 Wobland
 
15.11.13
14:08
запроси в запросе сразу всё нужное, чтоб вот так не сношаться
15 alonesl
 
15.11.13
14:17
(14)|    ОтпускаОрганизаций.Ссылка как Док, ОтпускаОрганизаций.РаботникиОрганизации.Начисления.Результат как Рез не получаетса :((
16 alonesl
 
15.11.13
14:17
Второй параметр не сам документ, а табличная чать - мне как то к ней надо подобраться
17 Господин ПЖ
 
15.11.13
14:18
(16) разрешаю делать запрос сразу к ТЧ

и буквари читать тоже
18 Wobland
 
15.11.13
14:19
(15) из документ.тч
19 alonesl
 
15.11.13
14:22
(18) не совсем понял..
20 Wobland
 
15.11.13
14:23
ИЗ Документ.ОтпускаОрганизаций.Начисления
21 alonesl
 
15.11.13
14:34
Ткните меня мордой, ибо уже пипец:
Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ОтпускаОрганизаций.Ссылка
        |ИЗ
        |    Документ.ОтпускаОрганизаций КАК ОтпускаОрганизаций,  Документ.ОтпускаОрганизаций.Начисления как Начисление
        |ГДЕ
        |    ОтпускаОрганизаций.РаботникиОрганизации.ДатаНачала > &ДатаНачала
        |    И ОтпускаОрганизаций.РаботникиОрганизации.ДатаОкончания < &ДатаОкончания";
Запрос.УстановитьПараметр("ДатаНачала", ДатаНач);
Запрос.УстановитьПараметр("ДатаОкончания", ДатаКон);
Результат = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = Результат.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
   Сообщить(ВыборкаДетальныеЗаписи);

Мля, я немогу уже больше!!!
22 alonesl
 
15.11.13
14:36
Блях, если в 7.Х это все интуитивно понятно где и откуда какие агрегаты тащить - тут вообще пипейц какой-то! Сраный перебор документов сделать немогу!!!
23 kosts
 
15.11.13
14:40
(22) Ходить, наверное, тоже с рождения умел?
24 alonesl
 
15.11.13
14:42
Я на нетиповых 7, 7.5 и 7.7 13 лет писал, и с нуля, и хоть "крестики нолики" напишу, а тут - прям задница какая-то! Навесили на меня эту ЗП 8.2- вот теперь и вешаюсь. Нет бы время было, посидеть, букварь покурить - а тут как всегда "еще вчера надо, ты же программист!" :((
25 kosts
 
15.11.13
14:44
Не надо как-то так, в отбор попадут доки, даже если только один день попадет на выбранный период.

|    ОтпускаОрганизаций.РаботникиОрганизации.ДатаНачала <= &ДатаОкончания
|    И ОтпускаОрганизаций.РаботникиОрганизации.ДатаОкончания >= &ДатаНачала";
26 alonesl
 
15.11.13
14:44
Еще до кучки "Документооборот" и "Управление автотранспортом" в коробках стоит - тоже все срочно надо впендрять, а я их в глаза не видел...
27 Infsams654
 
15.11.13
14:45
(22) Блях, в 8.Х это все интуитивно понятно, а вот в 7.Х - блях не разберусь.
И это на самом деле так
28 kosts
 
15.11.13
14:45
В консоли делаешь?
29 alonesl
 
15.11.13
14:46
не, я ее даже запустить несмог (краснею и стесняюсь)
Открыл из меню "Текст - конструктор запроса с обработкой результата"
30 kosts
 
15.11.13
14:47
(29) Скачай консоль запросов. Отлаживай запрос там. Выборка дело второе
31 alonesl
 
15.11.13
14:49
(30) С помощью кнопки 2 (Выполнить запрос) можно сразу же посмотреть результат выполнения запроса специальной панели результатов. Если эта панель уже открыта, результат обновляется.
Нужно заметить, что кнопки 2 и 3 видны только в том случае, когда конструктор открывается в пользовательском режиме.

Что значит "ПОЛЬЗОВАТЕЛЬСКИЙ РЕЖИМ"!?
http://1cexpo.ru/obuchenie-1s-predpriyatie/23-prakticheskoe-ispolzovanie-zaprosov-v-1s-8/40-konstruktor-zaprosov-1c.html
32 kosts
 
15.11.13
14:51
(21) Думаю одну таблицу, тебе нужно убрать. Полное соединение, Этим способом ты умножаешь записи. Оно конечно не говорит, что так нельзя делать, но в твоем случае скорее всего не нужно.

|ИЗ
        |    Документ.ОтпускаОрганизаций КАК ОтпускаОрганизаций,  Документ.ОтпускаОрганизаций.Начисления как Начисление
33 alonesl
 
15.11.13
14:51
на диске ИТС нашел, консоль запросов, при открытии пишет что "Ошибка при вызове метода контекста(подключить обработчик ожидания)" (30)
34 kosts
 
15.11.13
14:51
(33) Какая нибудь старая консоль
35 alonesl
 
15.11.13
14:52
с последнего ИТС (34)
36 kosts
 
15.11.13
14:53
(31) > Что значит "ПОЛЬЗОВАТЕЛЬСКИЙ РЕЖИМ"!?
Режим выполнения программы

(35) Можно подумать универсальные обработки кто-то сильно обновляет...
37 alonesl
 
15.11.13
14:57
через 2 часа и 4 минуты мне вырвут яйца :(( Эх, вот я на старости лет вперса!!! :((
38 kosts
 
15.11.13
15:02
[37] Чем смог...

ВЫБРАТЬ
    ОтпускаОрганизацийРаботникиОрганизации.Сотрудник,
    ОтпускаОрганизацийРаботникиОрганизации.ДатаНачала,
    ОтпускаОрганизацийРаботникиОрганизации.ДатаОкончания,
    ОтпускаОрганизацийРаботникиОрганизации.ПричинаОтсутствия,
    ОтпускаОрганизацийРаботникиОрганизации.Сторно,
    ОтпускаОрганизацийРаботникиОрганизации.КоличествоДней,
    ОтпускаОрганизацийРаботникиОрганизации.Ссылка
ИЗ
    Документ.ОтпускаОрганизаций.РаботникиОрганизации КАК ОтпускаОрганизацийРаботникиОрганизации
ГДЕ
    ОтпускаОрганизацийРаботникиОрганизации.Ссылка.Проведен
    И ОтпускаОрганизацийРаботникиОрганизации.ДатаНачала <= &ДатаОкончания
    И ОтпускаОрганизацийРаботникиОрганизации.ДатаОкончания >= &ДатаНачала
39 alonesl
 
15.11.13
15:12
Уфф... спасибо тебе, Друг!!! Работает!
Каким образом компилятор лезет к значению "Сотрудник" через такое маловразумительное без точек
"ОтпускаОрганизацийРаботникиОрганизации" надеюсь, когда нибудь пойму!
40 alonesl
 
15.11.13
15:16
тока вот сумму нифига опять вытянуть не получаетса, блин!
41 kosts
 
15.11.13
15:19
(39) >"ОтпускаОрганизацийРаботникиОрганизации"
Это представление таблицы, можно было написать Таблица1 к примеру...
42 kosts
 
15.11.13
15:21
(40) Сумму по любому нужно из регистра расчетов тянуть
43 alonesl
 
15.11.13
15:24
Если на форму повесить элемент диалога с типом значения ДокументСсылка.НачислениеОтпускаРаботникамОрганизаций под названием "Дока" и Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Дока = ВыборкаДетальныеЗаписи;
Сообщить(Дока.Начисления[0].Результат);
КонецЦикла;
Пишет что индекс за пределами значений
Немогу понять - почему вчера у меня именно ДокументИзЭлементаФормы.Начисления[0].Результат срабатывало!
44 kosts
 
15.11.13
15:30
Отбор по периоду регистрации, в месяц в котором начислили, (оч.часто не совпадает с месяцем в котором человек идет в отпуск).
Так или не так зависит от задачи.
Может вообще не нужно было в документ отпуск лезть, а ограничиться начислениями, в котором есть даты периодов отпуска (правда разбитые помесячно).

ВЫБРАТЬ
    ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета,
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
    СУММА(ОсновныеНачисленияРаботниковОрганизаций.Результат) КАК Результат,
    ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало,
    ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец,
    ОсновныеНачисленияРаботниковОрганизаций.Сторно,
    ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации
ИЗ
    РегистрРасчета.ОсновныеНачисленияРаботниковОрганизаций КАК ОсновныеНачисленияРаботниковОрганизаций
ГДЕ
    ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета = &ВидРасчетаОтпуск
    И ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНачала И &ДатаОкончания

СГРУППИРОВАТЬ ПО
    ОсновныеНачисленияРаботниковОрганизаций.Сотрудник,
    ОсновныеНачисленияРаботниковОрганизаций.ВидРасчета,
    ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияНачало,
    ОсновныеНачисленияРаботниковОрганизаций.ПериодДействияКонец,
    ОсновныеНачисленияРаботниковОрганизаций.Сторно,
    ОсновныеНачисленияРаботниковОрганизаций.ПериодРегистрации
45 kosts
 
15.11.13
15:31
(43) В табличной части нет строки с индексом 0 (т.е. строк вообще нет)
46 alonesl
 
15.11.13
15:35
В стандартной обработке "обмен между базами" есть такой код Процедура КнопкаЗагрузитьНажатие(Элемент)
    ВыполнитьЗагрузку(ИмяФайлаВыгрузки);
КонецПроцедуры
Даже отладчик тут не встает, чтоб посмотреть куда она дальше лезет - это почему? И где сама процедура "ВыполнитьЗагрузку" лежит? Где-то в глобальном модуле?
47 kosts
 
15.11.13
15:41
(46) На сервере наверное выполняется. Отладка на сервер не идет если её не включить. Нажми на процедуре F12, перейдешь к ней.
48 КРТЩ
 
15.11.13
15:47
ну я сразу вижу что если

[Необходимо выбрать документы "ОтпускаОрганизации" за определенный период ]

то условие

        |ГДЕ
        |    ОтпускаОрганизаций.РаботникиОрганизации.ДатаНачала >= &ДатаНачала
        |    И ОтпускаОрганизаций.РаботникиОрганизации.ДатаОкончания <= &ДатаОкончания";

как то так сначала
49 kosts
 
15.11.13
15:54
(48) Сотрудник ушел в отпуск 5-го сентября, пришел в октябре. С таким условием он ни в одном периоде не засветиться...
50 КРТЩ
 
15.11.13
16:03
(49) ИЛИ вместо И

и запрос к ТЧ надо делать, а реквизиты шапки дока через ссылку получать
51 alonesl
 
15.11.13
16:18
Да, по любому к ТЧ, ибо весь запрос можно заменить
Выборка = Документы.ОтпускаОрганизаций.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка);
КонецЦикла;
а вот сумму вытянуть - засада
52 КРТЩ
 
25.11.13
13:09
(51) а сумма в шапке?
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.