Вопрос № 111574: Добрый день, эксперты.
Мучает вопрос, в 7.7 бух можно в запросе выдать данные только по группе справочника? Группировка делается или с группами или без групп, а одни группы не нашел?
Спасибо за ответ....Вопрос № 111680: Здравствуйте эксперты.
Нужна помощь. 1С- 7.7
Есть документ – Заказ, у документа отсутствует табличная часть (за ненадобностью)
В шапке документа есть три реквизита: СуммаЗаказа, СуммаОплаты и Долг.
Подскажите, как сделать, чтоб реквиз...Вопрос № 111729: Как привести Тип ПланаВида Характеристики в табличной части документа.
Есть табличная часть документа Услуги
в которой есть реквизиты Счет,Субконто1,Субконто2,Субконто3.
В реквизит счет встраиваем процедуру при изменении.
Субконто1,2,...
Вопрос № 111.574
Добрый день, эксперты.
Мучает вопрос, в 7.7 бух можно в запросе выдать данные только по группе справочника? Группировка делается или с группами или без групп, а одни группы не нашел?
Спасибо за ответ.
Отправлен: 29.11.2007, 15:29
Вопрос задал: Koryiakin (статус: Посетитель)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 8)
Отвечает: Strawberry
Здравствуйте, Koryiakin!
Чисто группы нет. чисто группы это по условию Этогруппа()=1 или в условии запроса или при обработке данных запроса.
--------- Мальчик-извращенец прочел деду Морозу с табуретки всего Пастернака!
Ответ отправил: Strawberry (статус: 9-ый класс)
Ответ отправлен: 29.11.2007, 15:46 Оценка за ответ: 5 Комментарий оценки: Интересная идея с условием в запросе , т.к. сразу отсекаешь элементы внутри группы - должно рабоатать быстрей!
Отвечает: Besker®
Здравствуйте, Koryiakin!
Попробуйте так, выдаст данные только по группам, элементы игнорируются.
Пока Запрос.Группировка(1) = 1 Цикл
Если Запрос.ЭтоГруппа(1)=1 Тогда
Таб.ВывестиСекцию("Группа");
КонецЕсли;
КонецЦикла;
--------- Жизнь - игра, а настоящая игра - МАНИЯ.
Ответ отправил: Besker® (статус: Студент)
Ответ отправлен: 29.11.2007, 17:09 Оценка за ответ: 4 Комментарий оценки: Я шел по этому пути, просто очень громоздкий запрос- поэтому и хотелось оптимизировать
Отвечает: Ромашов Евгений Николаевич
Здравствуйте, Koryiakin!
Не утверждаю но помоему нет, пропусти элементы получишь группы
Ответ отправил: Ромашов Евгений Николаевич (статус: 5-ый класс)
Ответ отправлен: 30.11.2007, 04:59 Оценка за ответ: 4 Комментарий оценки: Надо ограничить запрос сразу- для ускорения формирования отчета
Отвечает: Владимир Лазурко [Vladal]
Здравствуйте, Koryiakin!
Я дополню ответы экспертов. Если в запросе указать группировку "без групп" - то в выборку запроса не попадут группы по условию самого запроса.
Можно использовать метод запроса ЭтоГруппа(), а можно и справочника. В приложении пример использования методов обоих объектов - справочника и запроса. Один цикл обхода выборки закомментирован. Оба цикла работают.
С уважением, Влад.
Приложение:
Ответ отправил: Владимир Лазурко [Vladal] (статус: 8-ой класс)
Ответ отправлен: 30.11.2007, 05:24 Оценка за ответ: 5 Комментарий оценки: Закомментированный вариант больше подходит- тк.к очень многочисленный объем данных - справочник материалов.
Вопрос № 111.680
Здравствуйте эксперты.
Нужна помощь. 1С- 7.7
Есть документ – Заказ, у документа отсутствует табличная часть (за ненадобностью)
В шапке документа есть три реквизита: СуммаЗаказа, СуммаОплаты и Долг.
Подскажите, как сделать, чтоб реквизит Долг высчитывало самостоятельно (т.е. его значение должно быть по формуле СуммаЗаказа – СуммаОплаты).
Если СуммаОплаты = 0, то Долг = СуммаЗаказа.
Спасибо.
Отправлен: 30.11.2007, 08:26
Вопрос задала: Lakosiera (статус: 1-ый класс)
Всего ответов: 4 Мини-форум вопроса >>> (сообщений: 5)
Отвечает: Vlad Skorochod
Здравствуйте, Lakosiera!
В полях СуммаЗаказа, СуммаОплаты в свойствах, вкладка дополнительно, поле формула прописываем: Долг=СуммаЗаказа- СуммаОплаты
Ответ отправил: Vlad Skorochod (статус: 10-ый класс)
Ответ отправлен: 30.11.2007, 08:33 Оценка за ответ: 3 Комментарий оценки: Спасибо, но не помогло (((
Отвечает: Астафьев Александр Николаевич
Здравствуйте, Lakosiera! В Форме Вашего документа для реквизитов СуммаЗаказа и СуммаОплаты на закладке "Дополнительно" напишите ВернутьДолг() а в модуле формы пропишите эту функцию(см. приложение).
Если значение Долг так жестко связано т.е. если Долг не редактируется вручную то можете его вообще исключить из реквизитов документа. Тогда в форме Вашего документа сделать текстовое поле которому на закладке "Дополнительно" аналогично напишите ВернутьДолг(). Если где то в документах или отчетах Вам понадобится значение долга то его всегда можно найти например по формуле:
Долг = Док.СуммаЗаказа – Док.СуммаОплаты;
Я это к чему. Чем меньше реквизитов тем меьше база 1С и тем она быстрее работает.
Приложение:
Ответ отправил: Астафьев Александр Николаевич (статус: 7-ой класс)
Ответ отправлен: 30.11.2007, 09:21 Оценка за ответ: 4 Комментарий оценки: Спасибо. Не помогло (((( Ругается: ВозвратСуммаЗаказа <>>– СуммаОплаты; {Документ.Оплата.Форма.Модуль(31)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction')
Отвечает: Краюшкин Игорь Валерьевич
Здравствуйте, Lakosiera!
В свойствах ячеек СуммаЗаказа и СуммаОплаты вписать формулу:
Долг = СуммаЗаказа - СуммаОплаты;
Таким образом, изменяя любое значение (сумму заказа или сумму оплаты) у Вас будет автоматически рассчитываться сумма долга.
Ответ отправил: Краюшкин Игорь Валерьевич (статус: 10-ый класс)
Ответ отправлен: 30.11.2007, 10:19 Оценка за ответ: 3 Комментарий оценки: Спасибо, не помогло (((
Отвечает: Яна
Здравствуйте, Lakosiera!
Попробуйте функцию ВернутьДолг описать так:
Функция ВернутьДолг()
Рез=СуммаЗаказа – СуммаОплаты;
Возврат Рез;
КонецФункции
Не забывайте писать ; в конце строки с оператором.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 30.11.2007, 11:21 Оценка за ответ: 3 Комментарий оценки: Рез=СуммаЗаказа <>>– СуммаОплаты; {Документ.Дополнительно.Форма.Модуль(13)}: Ожидается ключевое слово 'КонецФункции' ('EndFunction') Возврат <>>Рез; {Документ.Дополнительно.Форма.Модуль(14)}: Оператор Return (Возврат) не может употребляться вне процедуры или функции Возврат Рез;<>> {Документ.Дополнительно.Форма.Модуль(14)}: Обнаружено логическое завершение
исходного текста модуля
Вопрос № 111.729
Как привести Тип ПланаВида Характеристики в табличной части документа.
Есть табличная часть документа Услуги
в которой есть реквизиты Счет,Субконто1,Субконто2,Субконто3.
В реквизит счет встраиваем процедуру при изменении.
Субконто1,2, имеют тип ПланаВида характеристик ВидыСубконто.
Каким образом можно при изменении счета динамически присвоить
нужные виды субконто в элемент формы, что бы после этого в форме в каждом виде субконто можно было указывать значение.
Отвечает: Яна
Здравствуйте, Кузьмук Юрий Андреевич!
В процедуре ПриИзменении у Поля ввода счет прописать строки, заполняющие поля ввода субконто. Затем при открытии формы выбора для значения колонки можно отфильтровать возможные типы данных соответственно выбранным субконто.
Ответ отправила: Яна (статус: Студент)
Ответ отправлен: 30.11.2007, 14:48 Оценка за ответ: 1
Отвечает: Владимир Лазурко [Vladal]
Здравствуйте, Кузьмук Юрий Андреевич!
Если Ваш код выглядит так, каким Вы его поместили в мини-форуме, то в нём ошибка:
Как раз во всех трех обращениях к субконто в слове "Субконто" пропущена буква О. Т.е. должно выглядеть ТекущаяСтрока.Субконто1, ТекущаяСтрока.Субконто2 и ТекущаяСтрока.Субконто3.
Просмотрите еще раз свой модуль, нет ли еще несовпадения идентификаторов.