Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ |Продажи.Номенклатура, |Продажи.Валюта, |Продажи.Регистратор КАК Регистратор1, |Продажи.Стоимость |ИЗ |РегистрНакопления.Продажи КАК Продажи
Как в запросе можно (и можно ли) сразу сделать перерасчет из например из гривни в другую валюту?
Вопрос как. В 1С8 я не силен пока... Так что даже представления не имею Поэтому пожалуйста объясните как для чайников Или где посмотреть можно реализацию. Я так понимаю мне надо сначала получить Курс и кратность а потом ???
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1434 раз
Рейтинг: 0
Можно как-то так
Запрос = Новый Запрос;
ТекстЗапроса = " |ВЫБРАТЬ | КурсыВалютСрезПоследних.Курс КАК Курс, | КурсыВалютСрезПоследних.Кратность КАК Кратность |ПОМЕСТИТЬ КурсВалюты |ИЗ | РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних |ГДЕ | КурсыВалютСрезПоследних.Валюта = &Валюта |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Продажи.Номенклатура, | Продажи.Количество, | Продажи.Стоимость / КурсВалюты.Курс * КурсВалюты.Кратность КАК СтоимостьВалюта |ИЗ | РегистрНакопления.Продажи КАК Продажи, | КурсВалюты КАК КурсВалюты |";
Запрос.УстановитьПараметр("Валюта", );// указываем валюту в которой нужно получить стоимость
Но в этом запросе подразумевается что в регистрах хранятся суммы в гривне, иначе нужно ещё делать корректный пересчет. Курс берется последний на текущую дату.
Но в этом запросе подразумевается что в регистрах хранятся суммы в гривне, иначе нужно ещё делать корректный пересчет. Курс берется последний на текущую дату.
Спасибо.Попробую. В регистре суммы в гривне как валюте рег. учета и только в одной валюте.
ТекстЗапроса = " |ВЫБРАТЬ | КурсыВалютСрезПоследних.Курс КАК Курс, | КурсыВалютСрезПоследних.Кратность КАК Кратность |ПОМЕСТИТЬ КурсВалюты |ИЗ | РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних |ГДЕ | КурсыВалютСрезПоследних.Валюта = &Валюта |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Продажи.Номенклатура, | Продажи.Количество, | Продажи.Стоимость / КурсВалюты.Курс * КурсВалюты.Кратность КАК СтоимостьВалюта |ИЗ | РегистрНакопления.Продажи КАК Продажи, | КурсВалюты КАК КурсВалюты |";
Запрос.УстановитьПараметр("Валюта", );// указываем валюту в которой нужно получить стоимость
Но в этом запросе подразумевается что в регистрах хранятся суммы в гривне, иначе нужно ещё делать корректный пересчет. Курс берется последний на текущую дату.
небольшое замечание...пакетных запросов в 8.0. нет...они принминимы для 8.1
Но в этом запросе подразумевается что в регистрах хранятся суммы в гривне, иначе нужно ещё делать корректный пересчет. Курс берется последний на текущую дату.
Еще раз спасибо. Запрос получился вот такой
ВЫБРАТЬ КурсыВалютСрезПоследних.Валюта КАК ВалютаПродажи, КурсыВалютСрезПоследних.Курс, КурсыВалютСрезПоследних.Кратность, СдельнаяЗарплата.Сотрудник, СдельнаяЗарплата.ТМЦ, СдельнаяЗарплата.Валюта, СдельнаяЗарплата.СуммаЗарплаты КАК СуммаЗарплаты, СдельнаяЗарплата.БазаНачисления КАК БазаНачисления, СдельнаяЗарплата.ПринципНачисления, СдельнаяЗарплата.Процент, СдельнаяЗарплата.Период, СдельнаяЗарплата.Регистратор КАК ДокументНачисленияЗарплаты, СдельнаяЗарплата.Регистратор.СуммаДокумента, Продажи.Номенклатура, Продажи.Регистратор КАК ДокументПродажи, Продажи.Стоимость / КурсыВалютСрезПоследних.Курс * КурсыВалютСрезПоследних.Кратность КАК Стоимость, СдельнаяЗарплата.Себестоимость ИЗ РегистрНакопления.Продажи КАК Продажи ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СдельнаяЗарплата КАК СдельнаяЗарплата ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КурсыВалют.СрезПоследних КАК КурсыВалютСрезПоследних ПО СдельнаяЗарплата.Валюта = КурсыВалютСрезПоследних.Валюта ПО (СдельнаяЗарплата.ТМЦ = Продажи.Номенклатура) И Продажи.Регистратор = СдельнаяЗарплата.Регистратор ГДЕ СдельнаяЗарплата.Период МЕЖДУ &НачалоПериода И &КонецПериода
(из СКД) и конечном итоге такой отчет. [необходимо зарегистрироваться для просмотра ссылки]
Пока СотрудникиОрганизации.Следующий() Цикл Если НЕ ПустаяСтрока(СотрудникиОрганизации.ВидУдержания) Тогда НоваяСтрока = Удержания.Добавить(); НоваяСтрока.ФизЛицо = СотрудникиОрганизации.ФизЛицо;
"Намучал" такой вот запрос Не нравится вот эта строка: Если НЕ ПустаяСтрока(СотрудникиОрганизации.ВидУдержания) Тогда т.е. если нет удержаний по сотруднику тогда новую строку в документе не добавлять. Хочетца сразу такую ситуацию фильтровать в запросе и не обрабатывать данного сотрудника.
Как это условие должно выгладеть в запросе? В 77 для этого можно применить "когда". Тут я так понимаю что то типа Выбор когда... Но что то не получается у меня блин никак.
не выдает ошибку И (НЕ ВидУдержания = <<?>>") СотрудникиОрганизации = Запрос.Выполнить().Выбрать(); по причине: {(14, 25)}: Строка, не закрывающаяся кавычкой И (НЕ ВидУдержания = <<?>>")
"а Удержания.ВидУдержания что там строка? "
это справочник
сделал так
| И (НЕ ВидУдержания = &Пустой) ... Запрос.УстановитьПараметр("Пустой",Справочники.ВидыНачисленийУдержаний.ПустаяСсылка());
Вроде работает.
Но что то кажется что все равно как то через одно место ...
Не ну а подсказать по человечески? Нашел вот в типовой УТ например ее использование но ни фига не пойму как правильно использовать в моем примере. Буду рыться в книжках
"ВЫБРАТЬ | СведенияОРаботе.ФизЛицо КАК ФизЛицо, | Удержания.ВидУдержания КАК ВидУдержания, | Удержания.Валюта КАК Валюта, | Удержания.СтатьяЗатрат КАК СтатьяЗатрат, | Удержания.Сумма КАК Сумма |ИЗ | РегистрСведений.СведенияОРаботе КАК СведенияОРаботе | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Удержания КАК Удержания | ПО СведенияОРаботе.ФизЛицо = Удержания.ФизЛицо |ГДЕ | СведенияОРаботе.ДатаПриема <= &ДатаДок | И СведенияОРаботе.Организация = &Организация | И (НЕ ВидУдержания ЕСТЬ NULL) | |СГРУППИРОВАТЬ ПО | СведенияОРаботе.ФизЛицо, | Удержания.ВидУдержания, | Удержания.Валюта, | Удержания.СтатьяЗатрат, | Удержания.Сумма";
все правельно он делает....направлени показал...вперед +для себя более узнаешь.
Та знаю. Но блин свое обучение 1С8 сейчас оцениваю как . Когда было время надо было не ленится а изучать. А сейчас то что в принципе на семерке делаешь за 15-20 минут. Тут роешся и изачаешь по нескольку часов Очень это все обидно. Тем более что все равно %80 работы у меня на 77. медленно это все идет. Хотя не могу сказать что вабще не фига не знаю но вот бывает. Думаю вот пойти на язык запросов наверно В методе по запросам вобще нифига не понятно самому... Вот и тыкаюсь "як сліпе кошеня".
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0
Достаточно прочитать последовательно 5 книг и будет тебе счастье ... Букварь по админству, радченко, курсы от 1с (4 шт), огромный букварь по 8, сложные отчеты - и бушь в шоколаде ... PS: странно и почему ни кто не кричит, когда преходит с турбо си на вижуал студию, как тяжелая система ...
И шо прочитав пару книг асом по 8-ке стану? Опыт! Вот что главное. Собственно все что написали я читал. Но там примеры детские и не всегда подходят в практике. Например Есть NULL я так и не нашел вчера. Плачут, плачут. Тока на других своих форумах... Хотя если сравнивать получение опыта в семерке в свое время то все проходит побыстрее, но все равно не достаточно.
По поводу "великов" то изобретениями не занимаюсь. Но когда клиенту хочетца то почему и нет? Надо вот им вести учет "конвертов" в отдельной базе. По типу екселя. Ну и мне дополнительный опыт не помешает. Или вот еще пример из жизни расчет зарплаты на основании данных о реализации товаров и услуг. Считают вот менеджерам зарплату таким образом. Так что в типовых решениях не всегда есть то что надо. Спасаю разве что "кусками кода" Например для того что бы не писать движения регистров конструктором... Так что я не плачу. А тихонечко скрипя зубами грызу платформу 81 ))))
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!