Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> Запросы в 1С8 , Обсуждение написания запросов 2 страниц V   1 2 >          
MATEVI Подменю пользователя
сообщение 06.07.09, 16:15
Сообщение #1

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
|Продажи.Номенклатура,
|Продажи.Валюта,
|Продажи.Регистратор КАК Регистратор1,
|Продажи.Стоимость
|ИЗ
|РегистрНакопления.Продажи КАК Продажи

Как в запросе можно (и можно ли) сразу сделать перерасчет из например из гривни в другую валюту?

Fynjy Подменю пользователя
сообщение 06.07.09, 17:29
Сообщение #2

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Можно. В запросе допустимы конструкции типа А*Б/В.


Signature

MATEVI Подменю пользователя
сообщение 06.07.09, 17:46
Сообщение #3

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Вопрос как. В 1С8 я не силен пока... Так что даже представления не имею 32542390.gif
Поэтому пожалуйста объясните как для чайников smile.gif Или где посмотреть можно реализацию.
Я так понимаю мне надо сначала получить Курс и кратность а потом ???

Batchir Подменю пользователя
сообщение 06.07.09, 18:52
Сообщение #4

Живет на форуме
Иконка группы
Группа: Команда
Сообщений: 3568
Из: Киев
Спасибо сказали: 1427 раз
Рейтинг: 0

Можно как-то так



Запрос = Новый Запрос;

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

Запрос.УстановитьПараметр("Валюта", );// указываем валюту в которой нужно получить стоимость



Но в этом запросе подразумевается что в регистрах хранятся суммы в гривне, иначе нужно ещё делать корректный пересчет. Курс берется последний на текущую дату.

Спасибо сказали: MATEVI,

MATEVI Подменю пользователя
сообщение 06.07.09, 23:09
Сообщение #5

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(Batchir @ 06.07.09, 20:52) *
Можно как-то так

Но в этом запросе подразумевается что в регистрах хранятся суммы в гривне, иначе нужно ещё делать корректный пересчет. Курс берется последний на текущую дату.

Спасибо.Попробую. В регистре суммы в гривне как валюте рег. учета и только в одной валюте.

zetovich Подменю пользователя
сообщение 07.07.09, 7:19
Сообщение #6

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

Цитата(Batchir @ 06.07.09, 20:52) *
Можно как-то так



Запрос = Новый Запрос;

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

Запрос.УстановитьПараметр("Валюта", );// указываем валюту в которой нужно получить стоимость



Но в этом запросе подразумевается что в регистрах хранятся суммы в гривне, иначе нужно ещё делать корректный пересчет. Курс берется последний на текущую дату.


небольшое замечание...пакетных запросов в 8.0. нет...они принминимы для 8.1

Спасибо сказали: MATEVI,

MATEVI Подменю пользователя
сообщение 07.07.09, 18:51
Сообщение #7

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(Batchir @ 06.07.09, 20:52) *
Можно как-то так
.....

Но в этом запросе подразумевается что в регистрах хранятся суммы в гривне, иначе нужно ещё делать корректный пересчет. Курс берется последний на текущую дату.

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

(из СКД)
и конечном итоге такой отчет.
[необходимо зарегистрироваться для просмотра ссылки]

С меня пиво icon_beer17.gif

MATEVI Подменю пользователя
сообщение 20.08.09, 13:39
Сообщение #8

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0



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

Запрос.УстановитьПараметр("ДатаДок",Дата);
Запрос.УстановитьПараметр("Организация",Организация);

СотрудникиОрганизации = Запрос.Выполнить().Выбрать();

Пока СотрудникиОрганизации.Следующий() Цикл
Если НЕ ПустаяСтрока(СотрудникиОрганизации.ВидУдержания) Тогда
НоваяСтрока = Удержания.Добавить();
НоваяСтрока.ФизЛицо = СотрудникиОрганизации.ФизЛицо;


"Намучал" такой вот запрос smile.gif
Не нравится вот эта строка:
Если НЕ ПустаяСтрока(СотрудникиОрганизации.ВидУдержания) Тогда
т.е. если нет удержаний по сотруднику тогда новую строку в документе не добавлять.
Хочетца сразу такую ситуацию фильтровать в запросе и не обрабатывать данного сотрудника.

Как это условие должно выгладеть в запросе? В 77 для этого можно применить "когда".
Тут я так понимаю что то типа Выбор когда... Но что то не получается у меня блин никак.

zetovich Подменю пользователя
сообщение 20.08.09, 19:12
Сообщение #9

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0



"ВЫБРАТЬ
| СведенияОРаботе.ФизЛицо КАК ФизЛицо,
| Удержания.ВидУдержания КАК ВидУдержания,
| Удержания.Валюта КАК Валюта,
| Удержания.СтатьяЗатрат КАК СтатьяЗатрат,
| Удержания.Сумма КАК Сумма
|ИЗ
| РегистрСведений.СведенияОРаботе КАК СведенияОРаботе
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Удержания КАК Удержания
| ПО СведенияОРаботе.ФизЛицо = Удержания.ФизЛицо
|ГДЕ
| СведенияОРаботе.ДатаПриема <= &ДатаДок
| И СведенияОРаботе.Организация = &Организация
| И (НЕ ВидУдержания = "")
|
|СГРУППИРОВАТЬ ПО
| СведенияОРаботе.ФизЛицо,
| Удержания.ВидУдержания,
| Удержания.Валюта,
| Удержания.СтатьяЗатрат,
| Удержания.Сумма";

не?


ээээ... а Удержания.ВидУдержания что там строка?

Спасибо сказали: MATEVI, _kozak_,

MATEVI Подменю пользователя
сообщение 20.08.09, 20:11
Сообщение #10

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

не smile.gif выдает ошибку
И (НЕ ВидУдержания = <<?>>")
СотрудникиОрганизации = Запрос.Выполнить().Выбрать();
по причине:
{(14, 25)}: Строка, не закрывающаяся кавычкой
И (НЕ ВидУдержания = <<?>>")


"а Удержания.ВидУдержания что там строка? "

это справочник

сделал так

| И (НЕ ВидУдержания = &Пустой)
...
Запрос.УстановитьПараметр("Пустой",Справочники.ВидыНачисленийУдержаний.ПустаяСсылка());

Вроде работает.

Но что то кажется что все равно как то через одно место ... smile.gif

ЗЫ За мысль спасибо.

Fynjy Подменю пользователя
сообщение 20.08.09, 20:14
Сообщение #11

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Курим IS NULL


Signature

Спасибо сказали: MATEVI,

zetovich Подменю пользователя
сообщение 20.08.09, 20:17
Сообщение #12

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

там 2 кавычки
у меня работает.
хм..

а ваще ув. Fynjy дело говорит.

MATEVI Подменю пользователя
сообщение 20.08.09, 20:22
Сообщение #13

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(Fynjy @ 20.08.09, 22:14) *
Курим IS NULL

Не ну а подсказать по человечески? Нашел вот в типовой УТ например ее использование но ни фига не пойму как правильно использовать в моем примере. Буду рыться в книжках

zetovich Подменю пользователя
сообщение 20.08.09, 20:25
Сообщение #14

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0



"ВЫБРАТЬ
| СведенияОРаботе.ФизЛицо КАК ФизЛицо,
| Удержания.ВидУдержания КАК ВидУдержания,
| Удержания.Валюта КАК Валюта,
| Удержания.СтатьяЗатрат КАК СтатьяЗатрат,
| Удержания.Сумма КАК Сумма
|ИЗ
| РегистрСведений.СведенияОРаботе КАК СведенияОРаботе
| ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Удержания КАК Удержания
| ПО СведенияОРаботе.ФизЛицо = Удержания.ФизЛицо
|ГДЕ
| СведенияОРаботе.ДатаПриема <= &ДатаДок
| И СведенияОРаботе.Организация = &Организация
| И (НЕ ВидУдержания ЕСТЬ NULL)
|
|СГРУППИРОВАТЬ ПО
| СведенияОРаботе.ФизЛицо,
| Удержания.ВидУдержания,
| Удержания.Валюта,
| Удержания.СтатьяЗатрат,
| Удержания.Сумма";

Спасибо сказали: MATEVI,

MATEVI Подменю пользователя
сообщение 20.08.09, 20:27
Сообщение #15

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Цитата(zetovich @ 20.08.09, 22:17) *
там 2 кавычки
у меня работает.
хм..

а ваще ув. Fynjy дело говорит.

Та я тоже думал што из буфера что то не то "вставило". Переписал руками. Но ошибко выдавало smile.gif

Та только что то Ув. Fynjy мало говорит. smile.gif

zetovich Подменю пользователя
сообщение 20.08.09, 20:30
Сообщение #16

Почти ветеран
Иконка группы
Группа: Местный
Сообщений: 718
Из: Северодонецк
Спасибо сказали: 121 раз
Рейтинг: 0

все правельно он делает....направлени показал...вперед
+для себя более узнаешь.

Спасибо сказали: MATEVI,

MATEVI Подменю пользователя
сообщение 20.08.09, 20:42
Сообщение #17

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

Да это работает

| И (НЕ ВидУдержания ЕСТЬ NULL)

Цитата(zetovich @ 20.08.09, 22:30) *
все правельно он делает....направлени показал...вперед
+для себя более узнаешь.

Та знаю. Но блин свое обучение 1С8 сейчас оцениваю как icon_cuss.gif . Когда было время надо было не ленится а изучать. А сейчас то что в принципе на семерке делаешь за 15-20 минут. Тут роешся и изачаешь 64000000.gif по нескольку часов Очень это все обидно. 47046430.gif
Тем более что все равно %80 работы у меня на 77. медленно это все идет. Хотя не могу сказать что вабще не фига не знаю но вот бывает.
Думаю вот пойти на язык запросов наверно В методе по запросам вобще нифига не понятно самому... Вот и тыкаюсь "як сліпе кошеня".

Сорри за офтоп

Fynjy Подменю пользователя
сообщение 21.08.09, 8:15
Сообщение #18

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

Достаточно прочитать последовательно 5 книг и будет тебе счастье ... Букварь по админству, радченко, курсы от 1с (4 шт), огромный букварь по 8, сложные отчеты - и бушь в шоколаде ...
PS: странно и почему ни кто не кричит, когда преходит с турбо си на вижуал студию, как тяжелая система ...


Signature

Fynjy Подменю пользователя
сообщение 21.08.09, 8:16
Сообщение #19

Сенсей Чака Норриса
**********
За вредность
Группа: Пользователи
Сообщений: 1994
Из: Ахметов сити
Спасибо сказали: 333 раз
Рейтинг: 0

PS: а что бы не выдумывать велосипед - еще книжку по учету в твоей типовой конфигурации ...


Signature

MATEVI Подменю пользователя
сообщение 21.08.09, 9:02
Сообщение #20

Отдыхающий
Иконка группы
Ветеран троянской войныМодератору Про1С (за заслуги в 2011 году)
Группа: Местный
Сообщений: 2201
Из: Одесса
Спасибо сказали: 957 раз
Рейтинг: 0

И шо прочитав пару книг асом по 8-ке стану? smile.gif Опыт! Вот что главное.
Собственно все что написали я читал. Но там примеры детские и не всегда подходят в практике. Например Есть NULL я так и не нашел вчера.
Плачут, плачут. Тока на других своих форумах... Хотя если сравнивать получение опыта в семерке в свое время то все проходит побыстрее, но все равно не достаточно.

По поводу "великов" то изобретениями не занимаюсь. Но когда клиенту хочетца то почему и нет? Надо вот им вести учет "конвертов" в отдельной базе. По типу екселя. Ну и мне дополнительный опыт не помешает.
Или вот еще пример из жизни расчет зарплаты на основании данных о реализации товаров и услуг. Считают вот менеджерам зарплату таким образом. Так что в типовых решениях не всегда есть то что надо. Спасаю разве что "кусками кода" smile.gif Например для того что бы не писать движения регистров конструктором...
Так что я не плачу. А тихонечко скрипя зубами грызу icon_cuss.gif платформу 81 smile.gif))))

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


2 страниц V   1 2 >
Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 24.05.24, 18:22
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!