Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 2 [Все]   Вниз
  Печать  
Автор Тема: скд  (Прочитано 30338 раз)
0 Пользователей и 1 Гость смотрят эту тему.
kat
Участник

ua
Offline Offline

« : 29-01-2010 18:56 » 

Подскажите, пожалуйста, как в скд проанализировать регистратор (документ) регистра.
« Последнее редактирование: 29-01-2010 20:24 от Sel » Записан
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #1 : 29-01-2010 20:11 » 

kat, хватит мусорить! Одной темы достаточно.
Записан

Sel
Злобный
Администратор

ru
Offline Offline

« Ответ #2 : 29-01-2010 20:16 » 

И пиши по-людски!
Записан

Слово не воробей. Всё не воробей, кроме воробья.
kat
Участник

ua
Offline Offline

« Ответ #3 : 29-01-2010 20:20 » 

Отстань, злобный.

Rак в скд сделать отбор по регистратору регистра&  Улыбаюсь
« Последнее редактирование: 29-01-2010 20:25 от Sel » Записан
Sel
Злобный
Администратор

ru
Offline Offline

« Ответ #4 : 29-01-2010 20:24 » 

kat, милое создание (не знаю, он или она), повежливее, пожалуйста. Пришло за помощью, так сформулируй вопрос по-человечески, с соблюдением правил родного языка. И не хами.
Иначе в бан "отстанешь".
Записан

Слово не воробей. Всё не воробей, кроме воробья.
kat
Участник

ua
Offline Offline

« Ответ #5 : 29-01-2010 20:25 » 

опа угрозы пошли, не хочешь отвечать - не отвечай
Записан
kat
Участник

ua
Offline Offline

« Ответ #6 : 29-01-2010 20:44 » 

ГДЕ
   ТоварыНаСкладах.Регистратор <> ПеремещениеТоваров.Ссылка


не отбирает...
Записан
Sla
Команда клуба

ua
Offline Offline
Пол: Мужской

WWW
« Ответ #7 : 30-01-2010 07:42 » 

kat, ты по русски умеешь говорить?


зы. Тебя об этом просят уже три человека.
Записан

Мы все учились понемногу... Чему-нибудь и как-нибудь.
Sel
Злобный
Администратор

ru
Offline Offline

« Ответ #8 : 30-01-2010 07:51 » 

Это, оказывается, клон. Ну, подожду еще полчаса, если не исправится - пойдет в бан. Нечего всяких хамов упрашивать.
Записан

Слово не воробей. Всё не воробей, кроме воробья.
kat
Участник

ua
Offline Offline

« Ответ #9 : 30-01-2010 08:01 » 

Нужно, чтобы в отчет ОстаткиИОбороты выводились данные из регистра ТоварыНаСкладах, за исключением данных, которые регистрирует в этом регистре документ ПеремещениеТоваров...

Как сделать так, чтобы движения, регистрируемые ПеремещениемТоваров, не попадали в отчет?


ГДЕ
   ТоварыНаСкладах.Регистратор <> ПеремещениеТоваров.Ссылка

При такой записи в отчет попадают все данные из регистра, отбора не происходит...
« Последнее редактирование: 30-01-2010 08:02 от Sel » Записан
Finch
Спокойный
Администратор

il
Offline Offline
Пол: Мужской
Пролетал мимо


« Ответ #10 : 30-01-2010 10:05 » 

kat, В основном тут Kivals, очень силен в 1С:Бухгалтерии. Но он обитает на форуме по вечерам. Так что тебе придется подождать его.
Записан

Не будите спашяго дракона.
             Джаффар (Коша)
slab
Интересующийся

ru
Offline Offline

« Ответ #11 : 30-01-2010 11:31 » 

ГДЕ
   ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПеремещениеТоваров
Записан
slab
Интересующийся

ru
Offline Offline

« Ответ #12 : 30-01-2010 11:34 » 

Ошибся((
ГДЕ
   НЕ(ТоварыНаСкладах.Регистратор ССЫЛКА Документ.ПеремещениеТоваров)
Записан
kat
Участник

ua
Offline Offline

« Ответ #13 : 30-01-2010 11:36 » 

Спасибки  Улыбаюсь
Записан
kat
Участник

ua
Offline Offline

« Ответ #14 : 30-01-2010 18:36 » 

Все отлично, однако результат выводится в виде движений регистра, т.е. количество товаров по каждому документу... А нужно, чтоб выводилось количество товаров по каждому наименованию товара... Подскажите люди добрые
« Последнее редактирование: 30-01-2010 18:43 от Алексей1153++ » Записан
slab
Интересующийся

ru
Offline Offline

« Ответ #15 : 30-01-2010 18:40 » 

kat,  А что вы сделали для того, чтобы выводилось количество товаров по каждому документу?
« Последнее редактирование: 30-01-2010 18:43 от Алексей1153++ » Записан
kat
Участник

ua
Offline Offline

« Ответ #16 : 30-01-2010 18:56 » 

ВЫБРАТЬ
   |   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
   |ИЗ
   |   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(,,Регистратор,,) КАК ТоварыНаСкладахОстаткиИОбороты
   |ГДЕ
   |   НЕ (ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров)


Записан
slab
Интересующийся

ru
Offline Offline

« Ответ #17 : 30-01-2010 19:02 » 

тАК берите сумму , если я вас правильно понял)
Записан
kat
Участник

ua
Offline Offline

« Ответ #18 : 30-01-2010 19:05 » 

Вот то что получилось во вложении...

* Безымянный.png (177.15 Кб - загружено 1029 раз.)
Записан
slab
Интересующийся

ru
Offline Offline

« Ответ #19 : 30-01-2010 19:10 » 


[/quote]
ВЫБРАТЬ
   |   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
   |ИЗ
   |   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(,,Регистратор,,) КАК ТоварыНаСкладахОстаткиИОбороты
   |ГДЕ
   |   НЕ (ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров)




.........................
СУММУ(ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток) НчОстаток
...........................
СГРУППИРОВАТЬ ПО
 ТоварыНаСкладахОстаткиИОбороты.Номенклатура
Записан
slab
Интересующийся

ru
Offline Offline

« Ответ #20 : 30-01-2010 19:11 » 

читать не СУММУ, а СУММА)))
Записан
kat
Участник

ua
Offline Offline

« Ответ #21 : 30-01-2010 19:15 » 

Ух ты, круто, попробую, вы меня спасли второй раз, спасибо огромное Улыбаюсь
Записан
slab
Интересующийся

ru
Offline Offline

« Ответ #22 : 30-01-2010 19:17 » 

kat, Да не за что)))
Записан
slab
Интересующийся

ru
Offline Offline

« Ответ #23 : 30-01-2010 19:29 » 

тАК берите сумму , если я вас правильно понял)
ВЫБРАТЬ
   |   ТоварыНаСкладахОстаткиИОбороты.Номенклатура,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток
   |ИЗ
   |   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(,,Регистратор,,) КАК ТоварыНаСкладахОстаткиИОбороты
   |ГДЕ
   |   НЕ (ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров)





Кстати, вот этот запрос по сути ни одной записи не должен вернуть, если я ошибаюсь, то поправьте(я его не тестировал)
Записан
kat
Участник

ua
Offline Offline

« Ответ #24 : 31-01-2010 12:30 » 

Редис 1шт.- 1 приходная, 1 расходная;
Соковыжималка 1шт.- 1 приходная, 1 перемещение товаров.

вот что получилось с СУММА и УПОРЯДОЧИТЬ ПО

                          нач. ост.            приход          расход       кон.ост.
Редис                     1                        1                    1                  1               НЕПРАВИЛЬНО
Соковыжималка                              1                                         1



он получается сложил движения регистра (во вложении)



Должно быть так:                                                    нач. ост.            приход          расход       кон.ост.
                                                      Редис                                               1                    1                 
                                                      Соковыжималка                              1                                         1


* Безымянный2.png (15.1 Кб - загружено 1104 раз.)
Записан
kat
Участник

ua
Offline Offline

« Ответ #25 : 31-01-2010 16:31 » 

"ВЫБРАТЬ
   |   ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
   |   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
   |ИЗ
   |   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(,,,,) КАК ТоварыНаСкладахОстаткиИОбороты
   |ГДЕ
   |   (НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров)";



       Сообщение об ошибке:    Поле не найдено "ТоварыНаСкладахОстаткиИОбороты.Регистратор"


Почему так пишет? Не понял
Записан
slab
Интересующийся

ru
Offline Offline

« Ответ #26 : 31-01-2010 20:13 » 

Код:
Запрос = Новый Запрос;
Запрос.Текст="ВЫБРАТЬ
             | ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура,
             | ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
             | ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
             | ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
             | ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
             |ИЗ
             | РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(&Дн, &Дк, Регистратор, , ) КАК ТоварыНаСкладахОстаткиИОбороты
|  ГДЕ НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров";
Запрос.УстановитьПараметр("Дн", ЭтотОбъект.Дн);
Запрос.УстановитьПараметр("Дк", ЭтотОбъект.Дк);
Записан
kat
Участник

ua
Offline Offline

« Ответ #27 : 31-01-2010 22:02 » 

Редис 1шт.- 1 приходная, 1 расходная;
Соковыжималка 1шт.- 1 приходная, 1 перемещение товаров.

вот что получилось с СУММА и УПОРЯДОЧИТЬ ПО

                          нач. ост.            приход          расход       кон.ост.
Редис                     1                        1                    1                  1               НЕПРАВИЛЬНО Выводит в отчет
Соковыжималка                              1                                         1



он получается сложил движения регистра (во вложении)



Должно быть так:                                                    нач. ост.            приход          расход       кон.ост.
                                                      Редис                                               1                    1                 
                                                      Соковыжималка                              1                                         1


* Безымянный2.png (15.1 Кб - загружено 1039 раз.)
Записан
slab
Интересующийся

ru
Offline Offline

« Ответ #28 : 01-02-2010 09:04 » 

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

PS. А вы начало и конец периода указываете?
Записан
kat
Участник

ua
Offline Offline

« Ответ #29 : 01-02-2010 11:20 » 

Указываю начало и конец периода... С функцией ЕСТЬNULL результат тот же.
 
СУММА в любом случае равна 1, зачем использовать функцию ЕСТЬNULL...
Записан
kat
Участник

ua
Offline Offline

« Ответ #30 : 01-02-2010 12:19 » 

Как сделать, чтобы в отчете с отбором по регистратору регистра результат выводился в разрезе номенклатуры, а не в разрезе регистратора?

Текст запроса:

ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток КАК КоличествоНачальныйОстаток,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоПриход КАК КоличествоПриход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоРасход КАК КоличествоРасход,
   ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток КАК КоличествоКонечныйОстаток
ИЗ
   РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты(НАЧАЛОПЕРИОДА(&ДатаНач,ДЕНЬ),НАЧАЛОПЕРИОДА(&ДатаКон,ДЕНЬ), Регистратор, Движения, ) КАК ТоварыНаСкладахОстаткиИОбороты
ГДЕ
   (НЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ПеремещениеТоваров)
« Последнее редактирование: 01-02-2010 12:25 от Sel » Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #31 : 02-02-2010 15:44 » 

Программа все делает верно,  если осознать логику работы запроса:
сначала отбираются Движения по заданным условиям а потом выполняется агрегатная функция СУММА с группировкой по полю Номенклатура, итого имеем:
01.01.2010 Редис НачОст=0, Приход=1, Расход=0, КонОст=1;
02.01.2010 Редис НачОст=1, Приход=0, Расход=1, КонОст=0;
----
Сумма Редис НачОст=1, Приход=1, Расход=1, КонОст=1;

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

ЕстьNULL - это перестраховка от несуществуюих записей. Порой забывание про эту функцию в случае объединения запросов приводит к трудновыловимым ошибкам.

P.S. Запрос писался прямо в форуме и не проверялся на конфигурации - могут быть синтаксические ошибки
Записан
kat
Участник

ua
Offline Offline

« Ответ #32 : 04-02-2010 13:56 » 

Выдает пустой отчет Улыбаюсь
Записан
Kivals
Модератор

ca
Offline Offline
Пол: Мужской

WWW
« Ответ #33 : 05-02-2010 08:35 » 

Параметры Дн и Дк установила правильно?
Записан
kat
Участник

ua
Offline Offline

« Ответ #34 : 05-02-2010 09:39 » 

Спасибо огромное! все работает)))
Записан
Страниц: 1 2 [Все]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines