ArtMari
Участник
Offline
|
|
« Ответ #30 : 13-02-2009 10:03 » |
|
"вроде по условиям запроса в него попадут ТОЛЬКО если остатки или обороты нулевые. или их вообще нет..." т.е помечаются если например, остаток есть, а оборот равен нулю, то тоже помечается??Мне надо, чтобы помечался, если только нет и остатка и оборота одновременно
"вроде по условиям запроса в него попадут ТОЛЬКО если остатки или обороты нулевые. или их вообще нет..." т.е помечаются если например, остаток есть, а оборот равен нулю, то тоже помечается??Мне надо, чтобы помечался, если только нет и остатка и оборота одновременно
|
|
« Последнее редактирование: 13-02-2009 12:50 от Алексей1153++ »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #31 : 13-02-2009 11:47 » |
|
Попробуй добавить в запрос колонки (нач.ост., обороты дт, обороты кт, кон.ост) и вывести результат в печатном виде
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #32 : 13-02-2009 12:25 » |
|
В этот же запрос?Зачем?
может как-нибудь изменить условие ГДЕ в запросе, чтобы помечались только те у кого Нет вообще ни остатков ни оборотов?
|
|
« Последнее редактирование: 13-02-2009 12:51 от Алексей1153++ »
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #33 : 13-02-2009 15:26 » |
|
Чтобы посмотреть какие результаты тебе запрос выдает. Убери условие ГДЕ вообще и выведи обороты - увидишь какие лишние, а на что можно ориентироваться. Псоле этого составишь правильно еусловие ГДЕ
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #34 : 13-02-2009 15:35 » |
|
я НАПИСАЛА, А КАК ВЫВЕСТИ ОБОРОТЫ ТЕПЕРЬ, ЧТОБЫ ИХ УВИДЕТЬ?
ВЫБРАТЬ | ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.Субконто1, ОС.Ссылка) КАК СсылкаОС, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт, | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт, | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт
|ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет.Ссылка В (&СчетаУчетаОС), , ) КАК ХозрасчетныйОстаткиИОбороты | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ОсновныеСредства КАК ОС | ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ОС.Ссылка СчетаУчетаОС=Новый СписокЗначений; СчетаУчетаОС.Добавить(Счет1.Ссылка); СчетаУчетаОС.Добавить(Счет2.Ссылка); Запрос.УстановитьПараметр("СчетаУчетаОС", СчетаУчетаОС); Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ОбъектОС = Выборка.СсылкаОС.ПолучитьОбъект(); ОбъектОС.УстановитьПометкуУдаления(Истина); КонецЦикла;
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #35 : 13-02-2009 15:41 » |
|
Самое простое так: Построитель = Новый ПостроительОтчета;
Построитель.Текст = ""; // Тут текст запроса
СчетаУчетаОС=Новый СписокЗначений; СчетаУчетаОС.Добавить(Счет1.Ссылка); СчетаУчетаОС.Добавить(Счет2.Ссылка); Построитель.Параметры.Вставить("СчетаУчетаОС", СчетаУчетаОС); // немножко другой синтаксис параметров Построитель.Параметры.Вставить("НачПериода", НачПериода); Построитель.Параметры.Вставить("КонПериода", КонПериода);
Построитель.ЗаполнитьНастройки(); Построитель.Выполнить(); Построитель.Вывести();
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #36 : 13-02-2009 15:53 » |
|
пишет ошибку
{Форма.Форма(44)}: Значение не является значением объектного типа (Ссылка) СчетаУчетаОС.Добавить(Счет1.Ссылка);
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #37 : 13-02-2009 15:56 » |
|
И в форме не могу открыть форму выбора счета
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #38 : 13-02-2009 16:09 » |
|
с этой ошибкой разобралась(как -то странным образом тип счет1 и счет 2 стал строкой без моего участия)
Вывелся табличный документ и во всех колонках по остаткам и оборотам пусто, никаких значений. Что это значит?
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #39 : 13-02-2009 16:17 » |
|
Если вставить условие ГДЕ какое было то результат тот же, как по элементам, так и по пустым значениям оборотов и остатков.
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #40 : 13-02-2009 16:26 » |
|
а может данные как-то не так выбираются, потому что по оборотке по 2 ОС есть и оборот и начостаток, а таблица выводимая пуста абсолютно? или что это еще может быть?
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #41 : 13-02-2009 21:50 » |
|
я разобралась, работает, в итоге запрос выглядит так: Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.Субконто1, ОС.Ссылка) КАК СсылкаОС |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет.Ссылка В ИЕРАРХИИ(&СчетаУчетаОС), , ) КАК ХозрасчетныйОстаткиИОбороты | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ОсновныеСредства КАК ОС | ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ОС.Ссылка |ГДЕ | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт ЕСТЬ NULL";
СчетаУчетаОС=Новый СписокЗначений; СчетаУчетаОС.Добавить(Счет1.Ссылка); СчетаУчетаОС.Добавить(Счет2.Ссылка); Запрос.УстановитьПараметр("СчетаУчетаОС", СчетаУчетаОС); Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ОбъектОС = Выборка.СсылкаОС.ПолучитьОбъект(); Если НЕ Выборка.СсылкаОС.ЭтоГруппа() Тогда ОбъектОС.УстановитьПометкуУдаления(Истина); КонецЕсли; КонецЦикла;
Но теперь вопрос такой - Справочник ОС - ИЕРАРХИЧЕСКИЙ и группы помечаются тоже на удаление, как сделать, чтобы помечались только элементы в группах???
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #42 : 14-02-2009 07:42 » |
|
Почти все правильно, только ЭтоГруппа - совйство, а не метод: Если НЕ Выборка.СсылкаОС.ЭтоГруппа Тогда ОбъектОС.УстановитьПометкуУдаления(Истина); КонецЕсли;
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #43 : 14-02-2009 07:59 » |
|
А какой вариант лучше, чтобы совсем удалить эти помеченные элементы из базы: 1. Операции-> Удаление помеченных объектов или 2. можно как-то программно это сделать, чтобы данные из отчетов убрались с этими помеченными элементами?
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #44 : 15-02-2009 08:04 » |
|
Лучше - операции удаление, т.к. если сделать это программно - где-то могут остаться ссылки на несуществующие объекты и дальше база может некорректно работать
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #45 : 15-02-2009 21:05 » |
|
Большое спасибо!!!
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #46 : 18-02-2009 06:37 » |
|
Подскажите пожалуйста, на что может повлиять добавленная строчка в запрос?: "ВЫБРАТЬ | ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.Субконто1, ОС.Ссылка) КАК СсылкаОС, | ХозрасчетныйОстаткиИОбороты.Счет
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #47 : 18-02-2009 07:45 » |
|
| ХозрасчетныйОстаткиИОбороты.Счет
Т.е как повлияет эта строчка в запросе на пометку удаления элементов? Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.Субконто1, ОС.Ссылка) КАК СсылкаОС, | ХозрасчетныйОстаткиИОбороты.Счет |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет.Ссылка В ИЕРАРХИИ(&СчетаУчетаОС), , ) КАК ХозрасчетныйОстаткиИОбороты | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ОсновныеСредства КАК ОС | ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ОС.Ссылка |ГДЕ | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаОборотДт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаОборотКт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт ЕСТЬ NULL И | ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт ЕСТЬ NULL";
СчетаУчетаОС=Новый СписокЗначений; СчетаУчетаОС.Добавить(Счет1.Ссылка); СчетаУчетаОС.Добавить(Счет2.Ссылка); Запрос.УстановитьПараметр("СчетаУчетаОС", СчетаУчетаОС); Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Пока Выборка.Следующий() Цикл ОбъектОС = Выборка.СсылкаОС.ПолучитьОбъект(); Если НЕ Выборка.СсылкаОС.ЭтоГруппа() Тогда ОбъектОС.УстановитьПометкуУдаления(Истина); КонецЕсли; КонецЦикла;
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #48 : 18-02-2009 09:01 » |
|
На пометку - никак, если ты ее не собираешься проверять, т.к. для товаров, по которым нет остатков и оборотов у тебя Выборка.Счет всегда будет равна NULL
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #49 : 18-02-2009 09:16 » |
|
1.У меня получается что без этой строчки помечается на удаления один элемент, который не должен помечаться, а с ней все нормально. Почему так? 2. Почему может возникнуть такая ситуация: я задаю период 01.01.2009-28.02.2009 и смотрю сначала оборотку по счету 01.1 и 02.1 и там есть запись для "автопогрузчика" и у него есть начальное сальдо. Потом смотрю отчет Анализ субконто с тем же периодом по тем же счетам, выбираю этого "автопогрузчика" и он не находит за этот же период ни сальдо ни оборотов. При этом элемент "автопогрузчик" в ОС помечается на удаление. Почему так? и правильно ли это вообще?
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #50 : 18-02-2009 09:31 » |
|
При этом если в оборотке по счету в настройках указать детализацию ОС ИЕРАРХИЯ, то он не пишет этого автопогрузчика, а если без ИЕРАРХИИ то находит по нему оборот
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #51 : 18-02-2009 09:36 » |
|
Все разобралась, просто один и тот же элемент у меня был в разных группах
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #52 : 18-02-2009 10:28 » |
|
а как вывести отчет после результата выполнения запроса, чтобы там указывалось, какие элементы помечены на удаление?
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #53 : 18-02-2009 11:37 » |
|
кАК СДЕЛАТЬ, ЧТОБЫ В ОТЧЕТЕ ВЫВОДИМОМ ЗАПИСИ ГРУППИРОВАЛИСЬ ПО ГРУППАМ?И как изменисть название столбца в самой колонке,т.е чтобы было написано не СсылкаОС, а Основные средства?
Построитель = Новый ПостроительОтчета;
Построитель.Текст = "ВЫБРАТЬ | ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.Субконто1, ОС.Ссылка) КАК СсылкаОС |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет.Ссылка В ИЕРАРХИИ (&СчетаУчетаОС), , ) КАК ХозрасчетныйОстаткиИОбороты | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ОсновныеСредства КАК ОС | ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ОС.Ссылка |ГДЕ | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаОборотДт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаОборотКт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт ЕСТЬ NULL"; СчетаУчетаОС.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("01").Ссылка); СчетаУчетаОС.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("02").Ссылка); Построитель.Параметры.Вставить("СчетаУчетаОС", СчетаУчетаОС); Построитель.Параметры.Вставить("НачПериода", НачПериода); Построитель.Параметры.Вставить("КонПериода", КонПериода); Построитель.ЗаполнитьНастройки(); Построитель.Выполнить(); Построитель.ВыбранныеПоля.Добавить("СсылкаОС"); Построитель.ТекстЗаголовка="Помеченные на удаление ";
Построитель.Вывести(); Сообщить("Обработка закончена!",СтатусСообщения.Информация);
|
|
|
Записан
|
|
|
|
ArtMari
Участник
Offline
|
|
« Ответ #54 : 18-02-2009 16:10 » |
|
Мне надо, чтобы в отчете была одна колонка и в ней: первая группа и далее все помеченные элементы из этой группы, вторая группа и далее все элементы помеченные из этой группы и так далее. Может можно вот так реализовать, или что тут неправильно? Пишет ошибку Ошибка при вызове метода контекста (Вывести): Несоответствие типов (параметр номер '1') ТабДок.Вывести("ОбластьШапкаТаблицы");
Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ЕСТЬNULL(ХозрасчетныйОстаткиИОбороты.Субконто1, ОС.Ссылка) КАК СсылкаОС, | ХозрасчетныйОстаткиИОбороты.Счет, | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток КАК остаток |ИЗ | РегистрБухгалтерии.Хозрасчетный.ОстаткиИОбороты(&НачПериода, &КонПериода, , , Счет.Ссылка В ИЕРАРХИИ (&СчетаУчетаОС), , ) КАК ХозрасчетныйОстаткиИОбороты | ПОЛНОЕ СОЕДИНЕНИЕ Справочник.ОсновныеСредства КАК ОС | ПО ХозрасчетныйОстаткиИОбороты.Субконто1 = ОС.Ссылка |ГДЕ | ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстаток ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокДт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаНачальныйОстатокКт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаОборотДт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаОборотКт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокДт ЕСТЬ NULL | И ХозрасчетныйОстаткиИОбороты.СуммаКонечныйОстатокКт ЕСТЬ NULL |ИТОГИ ПО | СсылкаОС ИЕРАРХИЯ";
СчетаУчетаОС.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("01.01").Ссылка); СчетаУчетаОС.Добавить(ПланыСчетов.Хозрасчетный.НайтиПоКоду("02.01").Ссылка); Запрос.УстановитьПараметр("СчетаУчетаОС", СчетаУчетаОС); Запрос.УстановитьПараметр("НачПериода", НачПериода); Запрос.УстановитьПараметр("КонПериода", КонПериода); Результат = Запрос.Выполнить(); ТабДок = ЭлементыФормы.ПолеТабличногоДокумента; Макет = ПолучитьМакет("Пометка"); ОбластьЗаголовок= Макет.ПолучитьОбласть("Заголовок"); ОбластьШапкаТаблицы=Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьСекция= Макет.ПолучитьОбласть("Секция"); ОбластьСекция2= Макет.ПолучитьОбласть("Секция2"); ТабДок.Очистить(); ТабДок.Вывести("ОбластьШапкаТаблицы"); ТабДок.Вывести("ОбластьЗаголовок"); ТабДок.НачатьАвтогруппировкуСтрок();
ВыборкаГруппПомеченных = Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаГруппПомеченных.Следующий()Цикл ОбластьСекция.Параметры.Заполнить(ВыборкаГруппПомеченных); ТабДок.Вывести(ОбластьСекция, ВыборкаГруппПомеченных.Уровень()); ВыборкаЭлементовГрупп = ВыборкаГруппПомеченных.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаЭлементовГрупп.Следующий() Цикл ОбластьСекция2.Параметры.Заполнить(ВыборкаЭлементовГрупп); ТабДок.Вывести(ОбластьСекция2, ВыборкаЭлементовГрупп.Уровень()); КонецЦикла; КонецЦикла; ТабДок.ЗакончитьАвтогруппировкуСтрок();
|
|
|
Записан
|
|
|
|
Kivals
|
|
« Ответ #55 : 18-02-2009 21:21 » |
|
Без кавычек: ТабДок.Вывести(ОбластьШапкаТаблицы);
|
|
|
Записан
|
|
|
|
Gendalf
Гость
|
|
« Ответ #56 : 13-05-2009 02:27 » |
|
Задача легкая, зато юзер неподъемный. Каким ветром её занесло?
|
|
|
Записан
|
|
|
|
|