|
Как проверить, заполнены ли все субконто? | ☑ | ||
---|---|---|---|---|
0
DirecTwiX
05.04.13
✎
21:45
|
Конкретное субконто можно проверить так:
ХозрасчетныйДвиженияССубконто.СубконтоДт1.Наименование ЕСТЬ NULL (нашёл на мисте) Но как проверить все? Если ещё учитвать, что их может быть переменное число (больше 3) На ум приходит вот что: получить максимальное число субконто и программно составить текст запроса. Но выглядит уж больно страшно |
|||
1
Поросенок Петр
05.04.13
✎
21:47
|
А не тролль ли DirecTwiX ?
Нельзя так жечь всамделишно. Плюс темы на разный лад. |
|||
2
Живой Ископаемый
05.04.13
✎
21:50
|
проверить в каком контексте?
я с ходу могу придумать два. и еще один способ, при котором проверки просто не нужны, будет контролировать движок |
|||
3
Птица
05.04.13
✎
21:50
|
(0)а в каком контексте это нужно проверять?
(1) видимо, отсыпали |
|||
4
DirecTwiX
05.04.13
✎
21:52
|
Проверить, заполнены ли субконто в документе ОтражениеЗарплатыВРегламентомУчёте
|
|||
5
Живой Ископаемый
05.04.13
✎
21:54
|
в каком контексте?
|
|||
6
DirecTwiX
05.04.13
✎
21:55
|
Для управленческих целей, хз)
|
|||
7
Зойч
05.04.13
✎
21:57
|
(6) Ложись лучше спать
|
|||
8
Живой Ископаемый
05.04.13
✎
21:59
|
господи... это модуль проведения этого документа, модуль наборазаписей регистра, и нужно проверить заполненность субокнто у движений конкретного экземпляра, или это обработка, которая должна найти все документы у которых в регистрах есть незаполеннные субконто, и что такое незаполенное, например пустую ссылку будем считать незаполенной?
|
|||
9
DirecTwiX
05.04.13
✎
22:03
|
бработка, которая должна найти все документы у которых в регистрах есть незаполеннные субконто
Пустая ссылка считать незаполненой (в регистре бухгалтерии вроде не может оказаться незаполненной строки, в которой не стоит пустой ссылки. Разве нет?) |
|||
10
mistеr
05.04.13
✎
22:31
|
Если в коде, то ЗначениеЗаполнено().
Если в запросе, то = &ПустаяСсылка. Или проблема выбрать записи из РБ? |
|||
11
hhhh
05.04.13
✎
22:31
|
нет, может оказаться
|
|||
12
DirecTwiX
05.04.13
✎
22:32
|
(10) Пустая ссылка какого типа?
Вот уже думаю вручную выборку перебирать. Хотел запросом |
|||
13
НафНаф
05.04.13
✎
22:35
|
ВСЯ КУЙНЯ КАК ОБЫЧНО
ведь есть пустые сцылик, а есть Неопределно, далеко где-то есть NULL |
|||
14
DirecTwiX
05.04.13
✎
22:35
|
(11) Можно пример?
В демонстрационной не нашёл: ГДЕ ХозрасчетныйДвиженияССубконто.СубконтоДт1 ЕСТЬ NULL И НЕ (ХозрасчетныйДвиженияССубконто.ВидСубконтоДт1 ЕСТЬ NULL) |
|||
15
DirecTwiX
05.04.13
✎
22:37
|
Походу, фигню какую-то в (14)
Начинаю тупить |
|||
16
Волчара2010
05.04.13
✎
22:38
|
(0) мля, ну вот прежде чем лезть на форум с таким вопросом, открой любую типовую бухгалтерию и посмотри
|
|||
17
DirecTwiX
05.04.13
✎
22:40
|
(16) Что посмотреть то? Может, прежде чем так необдуманно отвечать, надо перечитать вопрос ещё пару раз?
|
|||
18
DirecTwiX
05.04.13
✎
22:41
|
(15) Хотя нет. Вроде норм
|
|||
19
Волчара2010
05.04.13
✎
22:41
|
(17) зайди в модуль проведения любого документа и посмотри.
А еще лучше набири поиском по общим модулям по ключевому слову "субконто" |
|||
20
Волчара2010
05.04.13
✎
22:42
|
(18) не позорься, мля!
|
|||
21
mistеr
05.04.13
✎
22:55
|
(15) Перебирай в коде. Запросом не реально.
(20) Хорош гнобить человека, лучше помоги. |
|||
22
GANR
05.04.13
✎
22:58
|
ОбъектМетаданныхПланСчетов = ПланыСчетов.ТвойПланСчетов.Метаданные();
КоличествоСубконто = ОбъектМетаданныхПланСчетов.ВидыСубконто.Количество(); Запрос = Новый Запрос; // при таком запросе вывалятся ВСЕ субконто (!!!) Запрос.Текст = "ВЫБРАТЬ * ИЗ РегистрБухгалтерии.ТвойРегистрБухгалтерии.ДвиженияССубконто"; Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл Для НомерСубконто = 1 По КоличествоСубконто Цикл НомерСубконтоСтрокой = СтрЗаменить(НомерСубконто, Символы.НПП, ""); ИмяВидаСубконтоДт = "ВидСубконтоДт" + НомерСубконтоСтрокой; ИмяСубконтоДт = "СубконтоДт" + НомерСубконтоСтрокой; ИмяВидаСубконтоКт = "ВидСубконтоКт" + НомерСубконтоСтрокой; ИмяСубконтоКт = "СубконтоКт" + НомерСубконтоСтрокой; Если Выборка[ИмяВидаСубконтоДт] <> NULL тогда Если ЗначениеЗаполнено(Выборка[ИмяСубконтоДт]) Тогда Сообщить("Субконто Дт №" + НомерСубконто + " заполнено"); КонецЕсли; КонецЕсли; Если Выборка[ИмяВидаСубконтоКт] <> NULL тогда Если ЗначениеЗаполнено(Выборка[ИмяСубконтоКт]) Тогда Сообщить("Субконто Кт №" + НомерСубконто + " заполнено"); КонецЕсли; КонецЕсли; КонецЦикла; КонеццЦикла; |
|||
23
GANR
05.04.13
✎
23:01
|
Звездочку * (читай, все поля) в запросе никто не отменял. Так что не обязательно его кодом делать.
|
|||
24
DirecTwiX
05.04.13
✎
23:06
|
(22) Сейчас у меня так и сделано с точностью до НомерСубконтоСтрокой = СтрЗаменить(НомерСубконто, Символы.НПП, "");
Через формат у меня было. Но за пример спасибо) В общих модулях ничего хорошего не нашёл - может плохо искал, но перебирать 15к результатов не стал (21) Спасибо. Сначала программно делал запрос, но потом выяснилось, что проверять на нул наименование не очень правильно - перечисления всё портят. Код, номер тоже не удалось прикрутить |
|||
25
GANR
05.04.13
✎
23:06
|
(0) Понятно, что-нибудь по (22)(23)?
|
|||
26
GANR
05.04.13
✎
23:07
|
(24) главная изюминка - в (23)
|
|||
27
DirecTwiX
05.04.13
✎
23:11
|
(25) Так я и так через звёздочку выбирал)
Но количество субконто вот так считал: Метаданные.ПланыСчетов.Хозрасчетный.МаксКоличествоСубконто А программно я не запрос хотел формировать, а условие) |
|||
28
GANR
05.04.13
✎
23:14
|
(27) Прекрасно! Запрос - через звездочку, проверка заполненности - в коде. Лучше и быть не может в рамках платформы 1С на текущий момент, имхо.
|
|||
29
DirecTwiX
05.04.13
✎
23:19
|
А без звёздочки быстрее не станет (может и чуть-чуть)? Так придётся тянуть 6 полей, а через * - все 36..
|
|||
30
DirecTwiX
05.04.13
✎
23:22
|
И сейчас подумал вот что: если не через * выбирать, то 1с может свернёт значения по пересекающимся полям. Количество в выборке по идее должно меньше стать. Нет?
|
|||
31
Живой Ископаемый
05.04.13
✎
23:47
|
ВЫБРАТЬ
ХозрасчетныйОстатки.Регистратор КАК Регистратор, ХозрасчетныйОстатки.СчетДт, ХозрасчетныйОстатки.СубконтоДт1, ХозрасчетныйОстатки.СубконтоДт2, ХозрасчетныйОстатки.СубконтоДт3, ХозрасчетныйОстатки.СуммаОборот ИЗ РегистрБухгалтерии.Хозрасчетный.ОборотыДтКт(&ДатаНач, &ДатаКон, Регистратор, , , , , ) КАК ХозрасчетныйОстатки ГДЕ (НЕ ХозрасчетныйОстатки.СубконтоДт1 ЕСТЬ NULL И ХозрасчетныйОстатки.СубконтоДт1.Ссылка ЕСТЬ NULL ИЛИ НЕ ХозрасчетныйОстатки.СубконтоДт2 ЕСТЬ NULL И ХозрасчетныйОстатки.СубконтоДт2.Ссылка ЕСТЬ NULL ИЛИ НЕ ХозрасчетныйОстатки.СубконтоДт3 ЕСТЬ NULL И ХозрасчетныйОстатки.СубконтоДт3.Ссылка ЕСТЬ NULL ) УПОРЯДОЧИТЬ ПО Регистратор Для Кредитовой части дописать я думаю, сумеешь. Лучше выполнять порциями, перебирая например недельные или месячные периоды - зависит от размеров базы Ну и это исходя из предположения, что максимальное количество субконто на счете - 3, как в типовых. |
|||
32
hhhh
05.04.13
✎
23:58
|
(27) вроде для разных счетов разное количество субконто. Для какого-то счета 5 субконто, а для какого-то 2. Что-то вы бредите, похоже.
|
|||
33
GANR
06.04.13
✎
11:25
|
(29) Если алгоритм выполняется максимум раз в день, а то и 1 раз и навсегда - затраты времени на выпиливание запроса не окупят себя.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |