Добавитькдате конецпериода период день секунда 1 где ошибка

СКД остатки на конец дня ☑ 0

I_learn_1c

21.11.17

13:51

Здравствуйте,

помогите пожалуйста.

Делаю отчет в СКД. Нужно выводить ТоварыВРезерве.Остатки, на конец дня.

В запросе указываю

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, )

Но период задается не четко датой, а типом «Стандартная дата начала» («Начало этого дня», «Начало этой недели» и т.д.)

Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло.

Стандартный период как то не притулила потому что смущает что нам дата начала и дата конца, а мне то только одна дата нужна, чтобы остатки конкретно на нее получить.

Как правильно получить остатки на конец дня? обычные формы, если важно, КА 1.1

1

azernot

21.11.17

14:03

>Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло

Как делали? И как поняли, что не помогло?

2

Гипервизор

21.11.17

14:05

(0) Для таблицы Остатков я бы получал так:

ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

3

azernot

21.11.17

14:05

Попробуйте так:

Заведите параметр

КонДата, для которого в Выражении напишите &Период.ДатаОкончания

А в запросе укажите

КОНЕЦПЕРИОДА(&КонДата,»День»)

4

I_learn_1c

21.11.17

14:08

(1)  В запросе:

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, )

В параметрах СКД один параметр Период, тип Дата, у него в Выражение записано КОНЕЦПЕРИОДА(&Период,»День»)

В Настройках СКД в Параметрах отмечен Период и если у него значение менять на какое-то «Начало этого месяца» к примеру, дата ставится например 01.11.2017 0:00:00

И в отчете выводится Параметры: Период:01.11.2017 0:00:00

5

I_learn_1c

21.11.17

14:09

(2) а куда это писать?

6

azernot

21.11.17

14:10

(4) Ну так параметр-то вы не меняете. Вы остатки проверьте, на начало они выдаются или на конец.

7

I_learn_1c

21.11.17

14:11

(3) Тогда Период типа Стандартный период, а КонДата -типа дата?

И в настройках СКД в параметрах все равно период?

8

I_learn_1c

21.11.17

14:12

(6) сейчас, пробую

9

azernot

21.11.17

14:14

(7) Да.

10

I_learn_1c

21.11.17

14:29

(9) Вроде меняется как надо..но я путаться уже стала.

По идее должно быть же достаточно в параметрах указать КОНЕЦПЕРИОДА(&Период,»День»)? А то что он выводит в Отчете 00:00:00 это не важно?

11

Гипервизор

21.11.17

14:40

(10) Какие поля вы выводите в отчет нам неведомо, но в качестве параметра у вас указывается конец дня.

Вот только записи со временем 23:59:59 у вас в отчет не попадут, проверьте.

12

I_learn_1c

21.11.17

14:49

(11)а куда в СКД дописать можно

ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

13

I_learn_1c

21.11.17

14:49

?

14

azernot

21.11.17

14:52

В запрос, туда где указывается период остатков

Например:

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(ДобавитьКДате(КонецПериода(&КонДата, «День»), «Секунда», 1), )

15

Гипервизор

21.11.17

14:53

Ну или в выражении параметра СКД

16

I_learn_1c

21.11.17

15:33

(14)спасибо большое, работает.правда записей на 23:59 у меня нет.

а с 23:59 это особенность 1С такая? И считается же что это та же дата? это не переходит еще на 00:00 следующего дня или как-то еще?

17

I_learn_1c

21.11.17

15:35

(15) и вам тоже спасибо)

18

vicof

21.11.17

15:37

(16) Читай про даты, границы и моменты времени

19

azernot

21.11.17

15:37

Виртуальная таблица Остатки() даёт остатки на границу НЕ ВКЛЮЧАЯ. Это такая особенность виртуальной таблицы остатков.

Таблица ОстаткиИОбороты выдаёт данные по границу ВКЛЮЧАЯ

20

I_learn_1c

21.11.17

15:40

(18) вот только прочитала про то что написано в (19) . Буду вникать подробнее, спасибо что подсказали что к чему

  • Печать

Страницы: 1 13 14 [15] 16 17 42

Тема: Задача 1.01  (Прочитано 160108 раз)

0 Пользователей и 1 Гость просматривают эту тему.

ivanzavr,
 Протестировал… smile
 Нужно использовать :

 ДобавитьКДате(КонецПериода(&Период,»День»),»Секунда»,1)

 тогда «последняя» секунда попадет в отчет… Посмотрите мою тестовую базу…
 «Остатки235959» используют Вашу конструкцию — КонецПериода(&Период,»День»)

 а «Остатки» конструкцию — ДобавитьКДате(КонецПериода(&Период,»День»),»Секунда»,1)

 Отчеты показывают разные данные… smile


Вложения:
s5533331.png
RoMeL_1.1_2.dt

« Последнее редактирование: Август 21, 2012, 11:02:48 am от RoMeL »


Записан


RoMeL, посмотрел
 и правда разные)
 учту, если принципиально надо будет добавить последнюю секунду)


Записан



«Подправил» свое решение…

 1. Запрос в ПН для отсечения услуг, группировки дублей строк;
 2. Запрос с использованием Менеджера временных таблиц в РН для источника даных для управляемых блокировок;

 Найдите ошибки smile


Вложения:
RoMeL_1.1_3.dt


Записан


RoMeL, Учту все недочеты, только не понял что значит «регистр в ноль не выведется»


Записан


XilDen, в приходе нет проверки на запись услуг в регистр остатков, т.е. теоретически можно оприходовать услугу…
 РН не делает расход услуг, таким образом услуги начнут копиться в итоговой таблице регистра остатков и списать их никак не выйдет. Это не выведение регистра в ноль.


Записан


RoMeL, Все понял. Ты давно к экзамену готовишься?


Записан



Записан


XilDen, с начала августа, пока только по разделу ОУ


Записан


RoMeL, Сколько задач решил?


Записан


XilDen, «прошол» ± 20, но не все решил до конца пока…

 Может кому пригодится…

 Как быстро набрать текст управляемой блокировки:

 1. Вводим в модуле текст «БлокировкаДанных»
 2. Выделяем, Ctrl+F1, открывается синтаксис-помочник
 3. Выделяем пример , мышкой перемещаем текст в модуль ( Drag&Drop)
 4. Переименовуем регистр, удаляем лишние строки и т.д.
 5. PROFIT tongue

 Все делается за 30 сек.

 Как быстро создать подсистемы:

 1. Выделяем «Общие картинки» ( корень )
 2. Drag&Drop мышкой на подсистемы
 3. PROFIT tongue

 Делается за 5 сек.

« Последнее редактирование: Август 21, 2012, 08:44:42 pm от RoMeL »


Записан


Здравствуйте. Прошу покритиковать мое решение задачи 1.1

 Я пока не смотрел чужие решения, хочется знать, насколько я далек или близок к правильному варианту.

 Вдогонку сразу вопрос — при списании товара, если я буду не записывать в регистр движения, а потом контролировать отрицательные остатки (как это советует радченко и 1с), а сделаю так, как сделал я (записываю пустой набор, делаю запрос на необходимое количество, а потом, если все в порядке — движения ) — это примут на экзамене?.

 Темы, которые наверняка (по моим догадкам) хромают в моем решении:

 -наверное надо создавать подсистемы, интерфейс (пока не заморачивался)
 -блокировки — все ли решается одной строкой перед выполнением запроса (Движения.ОстаткиТоваров.БлокироватьДляИзменения = Истина;) или надо по-другому


Вложения:
_1_1.dt


Записан


Alexis , добро пожаловать на форум =) Знаешь я сам не так давно готовлюсь, и могу тебе дать совет, смотреть чужие решения и разбираться что и зачем там сделано. Очень советую тебе товарища sv_mikh его решения есть почти по каждой задаче! Можно конечно тебе написать что у тебя не правильно и т.п. но лучше разберись сам , поверь пользы будет больше.
 То как вы делаете это старая методика, есть еще новая, но не во всех задачах она применима, в тех в которых она применима нужно делать обязательно по ней иначе засчитают ошибкой.
 По поводу блокировок, конечно нужно по другому, то как вы написали применимо только к новой методике, а в старой по другому. Поэтому скачайте себе чье нибудь решение и постарайтесь там во всем разобраться. Ссылка на статью по новой методике http://chistov.spb.ru/publ….-1-0-29


Записан



Записан


Quote (tenikov)

Мой вариант.

 Регистр Партии номенклатуры абсолютно лишний. Задача решается на двух регистрах: остатки: Номенклатура Партия Количество Стоимость и обороты: Номенклатура Количество Сумма.
 Проведение РН думаю лучше сделать одним запросом с Итогами и вставить туда направление сортировки в зависимости от учетной политики.
 Проблема копеек насколько вижу не решена
 Очень много кода и запросов. Думаю РН надо переделать.
 Не совсем понимаю зачем получать список номенклатуры в Товары и потом ставить в блокировку если можно табл. часть указать как источник данных.


Записан


Quote (Lazio)

Регистр Партии номенклатуры абсолютно лишний. Задача решается на двух регистрах: остатки: Номенклатура Партия Количество Стоимость и обороты: Номенклатура Количество Сумма.

 Хотелось сделать контроль остатков «по новому», а так — да, разумеется, можно на 2х регистрах.

Quote (Lazio)

Проведение РН думаю лучше сделать одним запросом с Итогами и вставить туда направление сортировки в зависимости от учетной политики.

 Так и есть.

Quote (Lazio)

Проблема копеек насколько вижу не решена

 Не понял. Какая проблема?

Quote (Lazio)

Не совсем понимаю зачем получать список номенклатуры в Товары и потом ставить в блокировку если можно табл. часть указать как источник данных.

 В табличной части могут быть услуги.


Записан



  • Печать

Страницы: 1 13 14 [15] 16 17 42

СКД остатки на конец дня

Я

  

I_learn_1c

21.11.17 — 13:51

Здравствуйте,

помогите пожалуйста.

Делаю отчет в СКД. Нужно выводить ТоварыВРезерве.Остатки, на конец дня.

В запросе указываю

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, )

Но период задается не четко датой, а типом «Стандартная дата начала» («Начало этого дня», «Начало этой недели» и т.д.)

Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло.

Стандартный период как то не притулила потому что смущает что нам дата начала и дата конца, а мне то только одна дата нужна, чтобы остатки конкретно на нее получить.

Как правильно получить остатки на конец дня? обычные формы, если важно, КА 1.1

  

azernot

1 — 21.11.17 — 14:03

>Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло

Как делали? И как поняли, что не помогло?

  

Гипервизор

2 — 21.11.17 — 14:05

(0) Для таблицы Остатков я бы получал так:

ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

  

azernot

3 — 21.11.17 — 14:05

Попробуйте так:

Заведите параметр

КонДата, для которого в Выражении напишите &Период.ДатаОкончания

А в запросе укажите

КОНЕЦПЕРИОДА(&КонДата,»День»)

  

I_learn_1c

4 — 21.11.17 — 14:08

(1)  В запросе:

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, )

В параметрах СКД один параметр Период, тип Дата, у него в Выражение записано КОНЕЦПЕРИОДА(&Период,»День»)

В Настройках СКД в Параметрах отмечен Период и если у него значение менять на какое-то «Начало этого месяца» к примеру, дата ставится например 01.11.2017 0:00:00

И в отчете выводится Параметры: Период:01.11.2017 0:00:00

  

I_learn_1c

5 — 21.11.17 — 14:09

(2) а куда это писать?

  

azernot

6 — 21.11.17 — 14:10

(4) Ну так параметр-то вы не меняете. Вы остатки проверьте, на начало они выдаются или на конец.

  

I_learn_1c

7 — 21.11.17 — 14:11

(3) Тогда Период типа Стандартный период, а КонДата -типа дата?

И в настройках СКД в параметрах все равно период?

  

I_learn_1c

8 — 21.11.17 — 14:12

(6) сейчас, пробую

  

azernot

9 — 21.11.17 — 14:14

(7) Да.

  

I_learn_1c

10 — 21.11.17 — 14:29

(9) Вроде меняется как надо..но я путаться уже стала.

По идее должно быть же достаточно в параметрах указать КОНЕЦПЕРИОДА(&Период,»День»)? А то что он выводит в Отчете 00:00:00 это не важно?

  

Гипервизор

11 — 21.11.17 — 14:40

(10) Какие поля вы выводите в отчет нам неведомо, но в качестве параметра у вас указывается конец дня.

Вот только записи со временем 23:59:59 у вас в отчет не попадут, проверьте.

  

I_learn_1c

12 — 21.11.17 — 14:49

(11)а куда в СКД дописать можно

ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

  

I_learn_1c

13 — 21.11.17 — 14:49

?

  

azernot

14 — 21.11.17 — 14:52

В запрос, туда где указывается период остатков

Например:

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(ДобавитьКДате(КонецПериода(&КонДата, «День»), «Секунда», 1), )

  

Гипервизор

15 — 21.11.17 — 14:53

Ну или в выражении параметра СКД

  

I_learn_1c

16 — 21.11.17 — 15:33

(14)спасибо большое, работает.правда записей на 23:59 у меня нет.

а с 23:59 это особенность 1С такая? И считается же что это та же дата? это не переходит еще на 00:00 следующего дня или как-то еще?

  

I_learn_1c

17 — 21.11.17 — 15:35

(15) и вам тоже спасибо)

  

vicof

18 — 21.11.17 — 15:37

(16) Читай про даты, границы и моменты времени

  

azernot

19 — 21.11.17 — 15:37

Виртуальная таблица Остатки() даёт остатки на границу НЕ ВКЛЮЧАЯ. Это такая особенность виртуальной таблицы остатков.

Таблица ОстаткиИОбороты выдаёт данные по границу ВКЛЮЧАЯ

  

I_learn_1c

20 — 21.11.17 — 15:40

(18) вот только прочитала про то что написано в (19) . Буду вникать подробнее, спасибо что подсказали что к чему

  • Печать

Страницы: 1 13 14 [15] 16 17 42

Тема: Задача 1.01  (Прочитано 154029 раз)

0 Пользователей и 1 Гость просматривают эту тему.

ivanzavr,
 Протестировал… smile
 Нужно использовать :

 ДобавитьКДате(КонецПериода(&Период,»День»),»Секунда»,1)

 тогда «последняя» секунда попадет в отчет… Посмотрите мою тестовую базу…
 «Остатки235959» используют Вашу конструкцию — КонецПериода(&Период,»День»)

 а «Остатки» конструкцию — ДобавитьКДате(КонецПериода(&Период,»День»),»Секунда»,1)

 Отчеты показывают разные данные… smile


Вложения:
s5533331.png
RoMeL_1.1_2.dt

« Последнее редактирование: Август 21, 2012, 11:02:48 am от RoMeL »


Записан


RoMeL, посмотрел
 и правда разные)
 учту, если принципиально надо будет добавить последнюю секунду)


Записан



«Подправил» свое решение…

 1. Запрос в ПН для отсечения услуг, группировки дублей строк;
 2. Запрос с использованием Менеджера временных таблиц в РН для источника даных для управляемых блокировок;

 Найдите ошибки smile


Вложения:
RoMeL_1.1_3.dt


Записан


RoMeL, Учту все недочеты, только не понял что значит «регистр в ноль не выведется»


Записан


XilDen, в приходе нет проверки на запись услуг в регистр остатков, т.е. теоретически можно оприходовать услугу…
 РН не делает расход услуг, таким образом услуги начнут копиться в итоговой таблице регистра остатков и списать их никак не выйдет. Это не выведение регистра в ноль.


Записан


RoMeL, Все понял. Ты давно к экзамену готовишься?


Записан



Записан


XilDen, с начала августа, пока только по разделу ОУ


Записан


RoMeL, Сколько задач решил?


Записан


XilDen, «прошол» ± 20, но не все решил до конца пока…

 Может кому пригодится…

 Как быстро набрать текст управляемой блокировки:

 1. Вводим в модуле текст «БлокировкаДанных»
 2. Выделяем, Ctrl+F1, открывается синтаксис-помочник
 3. Выделяем пример , мышкой перемещаем текст в модуль ( Drag&Drop)
 4. Переименовуем регистр, удаляем лишние строки и т.д.
 5. PROFIT tongue

 Все делается за 30 сек.

 Как быстро создать подсистемы:

 1. Выделяем «Общие картинки» ( корень )
 2. Drag&Drop мышкой на подсистемы
 3. PROFIT tongue

 Делается за 5 сек.

« Последнее редактирование: Август 21, 2012, 08:44:42 pm от RoMeL »


Записан


Здравствуйте. Прошу покритиковать мое решение задачи 1.1

 Я пока не смотрел чужие решения, хочется знать, насколько я далек или близок к правильному варианту.

 Вдогонку сразу вопрос — при списании товара, если я буду не записывать в регистр движения, а потом контролировать отрицательные остатки (как это советует радченко и 1с), а сделаю так, как сделал я (записываю пустой набор, делаю запрос на необходимое количество, а потом, если все в порядке — движения ) — это примут на экзамене?.

 Темы, которые наверняка (по моим догадкам) хромают в моем решении:

 -наверное надо создавать подсистемы, интерфейс (пока не заморачивался)
 -блокировки — все ли решается одной строкой перед выполнением запроса (Движения.ОстаткиТоваров.БлокироватьДляИзменения = Истина;) или надо по-другому


Вложения:
_1_1.dt


Записан


Alexis , добро пожаловать на форум =) Знаешь я сам не так давно готовлюсь, и могу тебе дать совет, смотреть чужие решения и разбираться что и зачем там сделано. Очень советую тебе товарища sv_mikh его решения есть почти по каждой задаче! Можно конечно тебе написать что у тебя не правильно и т.п. но лучше разберись сам , поверь пользы будет больше.
 То как вы делаете это старая методика, есть еще новая, но не во всех задачах она применима, в тех в которых она применима нужно делать обязательно по ней иначе засчитают ошибкой.
 По поводу блокировок, конечно нужно по другому, то как вы написали применимо только к новой методике, а в старой по другому. Поэтому скачайте себе чье нибудь решение и постарайтесь там во всем разобраться. Ссылка на статью по новой методике http://chistov.spb.ru/publ….-1-0-29


Записан



Записан


Quote (tenikov)

Мой вариант.

 Регистр Партии номенклатуры абсолютно лишний. Задача решается на двух регистрах: остатки: Номенклатура Партия Количество Стоимость и обороты: Номенклатура Количество Сумма.
 Проведение РН думаю лучше сделать одним запросом с Итогами и вставить туда направление сортировки в зависимости от учетной политики.
 Проблема копеек насколько вижу не решена
 Очень много кода и запросов. Думаю РН надо переделать.
 Не совсем понимаю зачем получать список номенклатуры в Товары и потом ставить в блокировку если можно табл. часть указать как источник данных.


Записан


Quote (Lazio)

Регистр Партии номенклатуры абсолютно лишний. Задача решается на двух регистрах: остатки: Номенклатура Партия Количество Стоимость и обороты: Номенклатура Количество Сумма.

 Хотелось сделать контроль остатков «по новому», а так — да, разумеется, можно на 2х регистрах.

Quote (Lazio)

Проведение РН думаю лучше сделать одним запросом с Итогами и вставить туда направление сортировки в зависимости от учетной политики.

 Так и есть.

Quote (Lazio)

Проблема копеек насколько вижу не решена

 Не понял. Какая проблема?

Quote (Lazio)

Не совсем понимаю зачем получать список номенклатуры в Товары и потом ставить в блокировку если можно табл. часть указать как источник данных.

 В табличной части могут быть услуги.


Записан



  • Печать

Страницы: 1 13 14 [15] 16 17 42

СКД остатки на конец дня

Я

I_learn_1c

21.11.17 — 13:51

Здравствуйте,

помогите пожалуйста.

Делаю отчет в СКД. Нужно выводить ТоварыВРезерве.Остатки, на конец дня.

В запросе указываю

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, )

Но период задается не четко датой, а типом «Стандартная дата начала» («Начало этого дня», «Начало этой недели» и т.д.)

Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло.

Стандартный период как то не притулила потому что смущает что нам дата начала и дата конца, а мне то только одна дата нужна, чтобы остатки конкретно на нее получить.

Как правильно получить остатки на конец дня? обычные формы, если важно, КА 1.1

azernot

1 — 21.11.17 — 14:03

>Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло

Как делали? И как поняли, что не помогло?

Гипервизор

2 — 21.11.17 — 14:05

(0) Для таблицы Остатков я бы получал так:

ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

azernot

3 — 21.11.17 — 14:05

Попробуйте так:

Заведите параметр

КонДата, для которого в Выражении напишите &Период.ДатаОкончания

А в запросе укажите

КОНЕЦПЕРИОДА(&КонДата,»День»)

I_learn_1c

4 — 21.11.17 — 14:08

(1)  В запросе:

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, )

В параметрах СКД один параметр Период, тип Дата, у него в Выражение записано КОНЕЦПЕРИОДА(&Период,»День»)

В Настройках СКД в Параметрах отмечен Период и если у него значение менять на какое-то «Начало этого месяца» к примеру, дата ставится например 01.11.2017 0:00:00

И в отчете выводится Параметры: Период:01.11.2017 0:00:00

I_learn_1c

5 — 21.11.17 — 14:09

(2) а куда это писать?

azernot

6 — 21.11.17 — 14:10

(4) Ну так параметр-то вы не меняете. Вы остатки проверьте, на начало они выдаются или на конец.

I_learn_1c

7 — 21.11.17 — 14:11

(3) Тогда Период типа Стандартный период, а КонДата -типа дата?

И в настройках СКД в параметрах все равно период?

I_learn_1c

8 — 21.11.17 — 14:12

(6) сейчас, пробую

azernot

9 — 21.11.17 — 14:14

(7) Да.

I_learn_1c

10 — 21.11.17 — 14:29

(9) Вроде меняется как надо..но я путаться уже стала.

По идее должно быть же достаточно в параметрах указать КОНЕЦПЕРИОДА(&Период,»День»)? А то что он выводит в Отчете 00:00:00 это не важно?

Гипервизор

11 — 21.11.17 — 14:40

(10) Какие поля вы выводите в отчет нам неведомо, но в качестве параметра у вас указывается конец дня.

Вот только записи со временем 23:59:59 у вас в отчет не попадут, проверьте.

I_learn_1c

12 — 21.11.17 — 14:49

(11)а куда в СКД дописать можно

ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

I_learn_1c

13 — 21.11.17 — 14:49

?

azernot

14 — 21.11.17 — 14:52

В запрос, туда где указывается период остатков

Например:

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(ДобавитьКДате(КонецПериода(&КонДата, «День»), «Секунда», 1), )

Гипервизор

15 — 21.11.17 — 14:53

Ну или в выражении параметра СКД

I_learn_1c

16 — 21.11.17 — 15:33

(14)спасибо большое, работает.правда записей на 23:59 у меня нет.

а с 23:59 это особенность 1С такая? И считается же что это та же дата? это не переходит еще на 00:00 следующего дня или как-то еще?

I_learn_1c

17 — 21.11.17 — 15:35

(15) и вам тоже спасибо)

vicof

18 — 21.11.17 — 15:37

(16) Читай про даты, границы и моменты времени

azernot

19 — 21.11.17 — 15:37

Виртуальная таблица Остатки() даёт остатки на границу НЕ ВКЛЮЧАЯ. Это такая особенность виртуальной таблицы остатков.

Таблица ОстаткиИОбороты выдаёт данные по границу ВКЛЮЧАЯ

  

I_learn_1c

20 — 21.11.17 — 15:40

(18) вот только прочитала про то что написано в (19) . Буду вникать подробнее, спасибо что подсказали что к чему

Обратная связь

Караков Александр Александрович
Много нового и интересного я узнал в этом курсе начиная с общих механизмов платформы,заканчивая автоматизацией
расчета зарплаты.
на практике полученные знания пригодились для построения внешних печатных форм и обработки заполнения табличных частей
документов, построению отчетов в СКд в конфигурации Бухгалтерии предприятия.
Сейчас работаю над проектом перехода крупной организации с 7.7 на 8.2 Бухгалтерию предприятия. Очень доволен форматом курса, большое спасибо!!!
Буду слушать продвинутый.

Ошибки и решения.

1 . В форме документа Закупка,КомплектацияБлюд,Продажа на панели навигации нет команд перехода на движения в регистрах сделанных этим документом
Устанавливается в командном интерфейсе управляемой формы

2. Общий модуль РаботаСДокументамиКлиент компилируется на сервере ,а необходимо компилировать на клиенте.

3 В документе Закупка Нет группировки строк (будет дублирование в регистре).обйти Циклом таблицу вводя записи в регистр
Движения.ОстаткиТМЦ.Записывать = Истина;
Движения.Закупки.Записывать = Истина;
Таблица = Номенклатура.Выгрузить();
Таблица.Свернуть(«Номенклатура,Цена»,»Количество,Сумма»);

Для Каждого ТекСтрокаНоменклатура Из Таблица Цикл
Движение = Движения.ОстаткиТМЦ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаНоменклатура.Номенклатура;
Движение.Количество = ТекСтрокаНоменклатура.Количество;
// регистр Закупки Приход
Движение = Движения.Закупки.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаНоменклатура.Номенклатура;
Движение.Количество = ТекСтрокаНоменклатура.Количество;
Движение.Сумма = ТекСтрокаНоменклатура.Сумма;
КонецЦикла;

4 В Регистре сведений состав блюд имеется измерение Количество, а оно должно быть ресурсом , для того чтобы платформа не давала
записать ошибочные сведения (На одно блюдо , одна компонента и разное количество)

5-6.В общем модуле неправильный код контроля остатков

Перписал запрос по контролю остатков (выбираем различную номенклатуру из табличной части документа,используем левое соединение к таблице документа,
в параметре Момент устанавливаем границу включая движения самого документа)

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

Если ИмяДокумента»Продажа» Тогда

Запрос.Текст = СтрЗаменить(Запрос.Текст, «Продажа», ИмяДокумента);

КонецЕсли;
Граница = Новый Граница(ДокументОбъект.МоментВремени(), ВидГраницы.Включая);
Запрос.УстановитьПараметр(«Момент», Граница);

7. При выводе сообщения пользователю не правильно позиционируется поле вывода ,необходимо
Сообщение.Поле = «Номенклатура[«+(ВыборкаДетальныеЗаписи.НомерСтроки-1)+»].Количество»;

8-9.В документе комплектация в модуле объекта процедуры обработки проведения Нет группировки строк (будет дублирование в регистре).обйти Циклом таблицу вводя записи в регистр,
так же отсутствует необходимость дважды установки флага записывать для набора записей ОстаткиТМЦ

Процедура ОбработкаПроведения(Отказ, Режим)

// регистр ОстаткиТМЦ Приход
Движения.ОстаткиТМЦ.Записывать = Истина;
Движение = Движения.ОстаткиТМЦ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = Блюдо;
Движение.Количество = Количество;

// регистр ОстаткиТМЦ Расход
// Движения.ОстаткиТМЦ.Записывать = Истина;

Таблица = Номенклатура.Выгрузить();
Таблица.Свернуть(«Номенклатура»,»Количество»);

Для Каждого ТекСтрокаСостав Из Таблица Цикл
Движение = Движения.ОстаткиТМЦ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаСостав.Номенклатура;
Движение.Количество = ТекСтрокаСостав.Количество;
КонецЦикла;

Движения.Записать();

Отказ = РаботаСДокументамиСервер.ЕстьОтрицательныеОстаткиПоНоменклатуреДокумента(ЭтотОбъект, «КомплектацияБлюд»);

КонецПроцедуры

10.В форме документа продажа обращение к КонстантыМенеджер можно только на сервере

&НаКлиенте
Процедура ПриОткрытии(Отказ)

Если Объект.Ссылка.Пустая() Тогда

Объект.Покупатель = ПолучитьОсновногоПокупателя();

КонецЕсли;

КонецПроцедуры

//Обращение к КонстантыМенеджер можно только на сервере
//
&НаСервереБезКонтекста
Функция ПолучитьОсновногоПокупателя()
Возврат Константы.ОсновнойПокупатель.Получить();
КонецФункции

11.В документе продажа в модуле объекта процедуры обработки проведения Нет группировки строк (будет дублирование в регистре).обйти Циклом таблицу вводя записи в регистр,

Процедура ОбработкаПроведения(Отказ, Режим)

// регистр ОстаткиТМЦ Расход
Движения.ОстаткиТМЦ.Записывать = Истина;
Движения.Продажи.Записывать = Истина;

Таблица = Номенклатура.Выгрузить();
Таблица.Свернуть(«Номенклатура,Цена»,»Количество,Сумма»);

Для Каждого ТекСтрокаНоменклатура Из Таблица Цикл
Движение = Движения.ОстаткиТМЦ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаНоменклатура.Номенклатура;
Движение.Количество = ТекСтрокаНоменклатура.Количество;

// регистр Продажи Приход
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаНоменклатура.Номенклатура;
Движение.Количество = ТекСтрокаНоменклатура.Количество;
Движение.Сумма = ТекСтрокаНоменклатура.Сумма;
КонецЦикла;

Движения.Записать();

Отказ = РаботаСДокументамиСервер.ЕстьОтрицательныеОстаткиПоНоменклатуреДокумента(ЭтотОбъект);

КонецПроцедуры

12.В отчете Остатки необходимо добавить параметр НаДату ,который будет вводить пользователь,а в выражение параметра Период ввести : ДобавитьКДате(КонецПериода(&НаДату, «День»), «Секунда», 1)
для получения корректных остатков. параметр НаДату включим в быстрые пользовательские настройки

13. Регистр накопления Продажи должен быть оборотным, т.к. иначе регистр не будет закрываться в ноль
14. В отчете ПродажиЗакупки изменим Запрос в СКД так же в пользовательском режиме пересчитаем итоги для корректного
формирования отчета.

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

Помощь миру

http://forum.infostart.ru/forum15/topic68900/message739993/#message739993

http://forum.infostart.ru/forum26/topic70963/

//продолжение следует

Имитация (программное) нажатия Клавиш 2
В системе » 1С:Предприятие» часто возникает ситуация, когда нужно закрыть окно сообщений, появляющееся при вызове метода Сообщить. Стандартно это окно закрывается при нажатии комбинации клавиш Ctrl + Shift + Z , но можно сделать это и программно.


Импорт — экспорт данных через XML. Обработка обмена документами 7
Восстановление документов 1С из архива в рабочую базу (XML обмен)
Не редко требуется восстановить данные испорченного документа 1С из архива базы после не умышленных, а зачастую ошибочных, действий удачливого пользователя. Самым простым способом я


Использование предложения ДЛЯ ИЗМЕНЕНИЯ 0
Предложение ДЛЯ ИЗМЕНЕНИЯ позволяет заблаговременно заблокировать некоторые данные (которые могут читаться транзакцией другого соединения) уже при считывании, чтобы исключить взаимные блокировки при записи. ДЛЯ ИЗМЕНЕНИЯ дает возможность указать в


Использование Предопределенных данных конфигурации 2
Текст запроса может содержать предопределенные данные конфигурации, такие как:
— значения перечислений;
— предопределенные данные:
— справочников;
— планов видов характеристик;
— планов счетов;
— планов видов расчетов;
— пустые ссылки;


Как в запросе указать пустую дату? — ДАТАВРЕМЯ() 7
Для указания Даты и Времени в запросе предназначена функция ДАТАВРЕМЯ(
ДАТАВРЕМЯ ( Целое число , Целое число , Целое число )
Значения типа дата задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываю


Посмотреть все результаты поиска похожих

Здравствуйте, помогите пожалуйста. Делаю отчет в СКД. Нужно выводить ТоварыВРезерве.Остатки, на конец дня. В запросе указываю РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) Но период задается не четко датой, а типом «Стандартная дата начала» («Начало этого дня», «Начало этой недели» и т.д.) Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло. Стандартный период как то не притулила потому что смущает что нам дата начала и дата конца, а мне то только одна дата нужна, чтобы остатки конкретно на нее получить. Как правильно получить остатки на конец дня? обычные формы, если важно, КА 1.1

>Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло Как делали? И как поняли, что не помогло?

Для таблицы Остатков я бы получал так:

Попробуйте так: Заведите параметр КонДата, для которого в Выражении напишите &Период.ДатаОкончания А в запросе укажите КОНЕЦПЕРИОДА(&КонДата,»День»)

В запросе: РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) В параметрах СКД один параметр Период, тип Дата, у него в Выражение записано КОНЕЦПЕРИОДА(&Период,»День») В Настройках СКД в Параметрах отмечен Период и если у него значение менять на какое-то «Начало этого месяца» к примеру, дата ставится например 01.11.2017 0:00:00 И в отчете выводится Параметры: Период:01.11.2017 0:00:00

Ну так параметр-то вы не меняете. Вы остатки проверьте, на начало они выдаются или на конец.

Тогда Период типа Стандартный период, а КонДата -типа дата? И в настройках СКД в параметрах все равно период?

Вроде меняется как надо..но я путаться уже стала. По идее должно быть же достаточно в параметрах указать КОНЕЦПЕРИОДА(&Период,»День»)? А то что он выводит в Отчете 00:00:00 это не важно?

Какие поля вы выводите в отчет нам неведомо, но в качестве параметра у вас указывается конец дня. Вот только записи со временем 23:59:59 у вас в отчет не попадут, проверьте.

а куда в СКД дописать можно ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

В запрос, туда где указывается период остатков Например: РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(ДобавитьКДате(КонецПериода(&КонДата, «День»), «Секунда», 1), )

Ну или в выражении параметра СКД

спасибо большое, работает.правда записей на 23:59 у меня нет. а с 23:59 это особенность 1С такая? И считается же что это та же дата? это не переходит еще на 00:00 следующего дня или как-то еще?

Читай про даты, границы и моменты времени

Виртуальная таблица Остатки даёт остатки на границу НЕ ВКЛЮЧАЯ. Это такая особенность виртуальной таблицы остатков. Таблица ОстаткиИОбороты выдаёт данные по границу ВКЛЮЧАЯ

вот только прочитала про то что написано в . Буду вникать подробнее, спасибо что подсказали что к чему

Тэги: 1С 8

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

СКД. Граница периода

документацию читать надо и пробовать: 

Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Период"));
Граница = Новый Граница(КонецДня(Дата), ВидГраницы.Включая);
Параметр.Значение = Граница;
Параметр.Использование = Истина;

всё четко работает


(с) I_G_O_R

или в выражении параметра Период (тип Дата) указать конструкцию

ВЫБОР &Период КОГДА ДатаВремя(1,1,1) ТОГДА ДатаВремя(1,1,1)  ИНАЧЕ ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&Период, «ДЕНЬ»), «СЕКУНДА», 1) КОНЕЦ

(с) http://www.spec8.ru/d08m12-lastsec  , Видео урок из статьи

Всё это обусловлено тем, что остатки виртуальной таблицы получаются на начало секунды, тем самым при проведении документов мы будем получать актуальные остатки на момент перед датой документа, а не после.

Популярные сообщения из этого блога

Вводная: текст в заголовке колонки отчета необходимо сориентировать «на 90»,  в ячейках же отчета оставить «на 0». Гуглопоиск отсылает к веткам различных форумов, где всё сводится к «нужно делать самостоятельный макет». Оказалось необязательно.

Вводная: реализовать ввод Заказа поставщику на основании Заказа на Ремонт. решить через расширения конфигурации. Хочу обратить ваше внимание, не нужно добавлять в расширение критерий отбора, для 8.3.12 нам не доступно добавлениеизменение состава критерия. Более того может зависать конфигуратор (столкнулся с последней версией 8.3.14 + ERP) Разработку рекомендую вести с применением хранилища и для расширения. Иначе устанете потом выгребать чего лишнего включили в расширение при добавлении таких или схожих обектов с составными типами и подобное. Все текущие типовые решения сейчас идут в режиме совместимости 8.3.12, в прочем и для 8.3.14 (и даже 8.3.15 ничего не поменялось). Что нам нужно было бы сделать при отказе от поддержки: 1) добавить наш документ в Критерий отбора (состав, реквизиты); 2) в раздел Ввод на основании целевого документа. И что с целью сохранения поддержки. Как сделать это же для расширения: 1) Добавить реквизит расширения Документы.ЗаказПоставщику._За

Когда нужно в макете (табличном документе) изменить ширину колонки  для конкретных строк: 1. Выделить всю строку (строки). Именно всю, фокус для выделенной области не работает. 2. Нажимаем и не отпускает Ctrl 3. С помощью мыши изменяют ширину любой из колонок — будет задан вопрос об создании нового формата строк — соглашаемся. Как же прекрасен мир, где для модификаций не достаточно просто использовать контекстное меню и диалог редактора свойств, где нужно знать заветные слова и таинства танца. 90ые, моё почтение. UPD Программно, тоже самое, можно сделать через ТабДок = Новый ТабличныйДокумент(); ТабДок.Область(1,,1,).СоздатьФорматСтрок(); ТабДок.Область(1,1).ШиринаКолонок = 70; ТабДок.Область(1,2).ШиринаКолонок = 30; ТабДок.Область(2,,2,).СоздатьФорматСтрок(); ТабДок.Область(2,1).ШиринаКолонок = 30; ТабДок.Область(2,2).ШиринаКолонок = 70; ТабДок.Показать();

Юров Александр Анатольевич, Финансовый менеджер Загорского лакокрасочного завода, Сергиев Посад

Поскольку моя профессия напрямую с программированием не связана, в пройденном базовом курсе для меня новое было практически всё. Впервые вплотную столкнулся с 1С 8 Конфигурацией УПП при построении системы бюджетирования в одной IT компании, в 2006 году, но до разработки тогда дело не дошло, всё на уровне использования стандартных инструментов системы. Хотя, нужно признать, с тех пор стал явно ощущать необходимость копнуть в 1С поглубже. Необходимо отметить, что с автоматизацией я всегда был связан довольно плотно, разрабатывал несложные программы на Access, писал макросы в Excel, всё для решения прикладных задач и облегчения работы своей и своих коллег. Декларируемые цели такой автоматизации для себя определял как повышение эффективности выполнения основной работы — финансово-экономической. По факту же всегда оказывалось, что именно в автоматизации и находятся мои главные интересы. И вот, наконец, решился, выбрал ваши курсы — я в восторге! Курс замечательный, данный формат обучения для меня — лучше не придумаешь (начинал с предыдущим, 15-м потоком, но в декабре существенно отстал из-за большой загрузки на работе, как обычно у финансистов в конце года, — отчеты, бюджеты, кредиты…). Теперь только вперед, продвинутый курс ждет меня…
Спасибо огромное за вашу работу, за хорошо подобранный материал, его подачу, глубину, разбор неоднознчных ситуаций и многое другое. Всё это придает уверенность в правильности своего выбора.

Теперь что касается задачи.

1. Неправильно работает автозаполнение поля «источник поступления» документа Поступление. Заполняется данными константы «Основной источник» даже в случае открытия имеющегося документа (при перепроведении если не исправить значение поля — проведутся данные, отличные от первоначальных). Причина — безусловное присваивание значения константы полю ИсточникПоступления в модуле формы, в событии ПриСозданииНаСервере.
Решение: поставил данное присваивание в обработку заполнения модуля документа, в ветку Иначе (если документ создается не из документа Инвентаризация)

2. Не работает автозаполнение поля «направление» документа ВыбытиеЖивотных в принципе, поскольку обращение к значению константы ОсновноеНаправление производится в процедуре модуля формы «ПриОткрытии», компилируемой на клиенте.
Решение: поставил данное присваивание в обработку заполнения модуля документа, в ветку Иначе (если документ создается не из документа Инвентаризация)

3. При создании нового документа Поступление по умолчанию задается неправильная (нетекущая) дата — 01.01.1980, заполняется значением по умолчанию стандартного реквизита Дата документа.
Решение: убрал значение по умолчанию реквизита

4. При создании нового документа ВыбитиеЖивотных по умолчанию задается неправильная (нетекущая) дата 01.01.1980, заполняется значением из ДанныхЗаполнения, установленных в обработке заполнения модуля объекта в случае, если документ создается не из документа Инвентаризация.
Решение: убрал данное присваивание из ветки Иначе

По умолчанию в обоих случаях (3 и 4 пункты ошибок) дата должна быть текущей, либо датой документа Инвентаризация, поскольку согласно правилам БУ излишки и недостачи отражаются в учете на дату инвентаризации (а не на какую-то самую раннюю дату, как тут, возможно, предполагалось)
Решение:
Прописал
Дата = ДанныеЗаполнения.Дата
в тело оператора Если ТипЗнч(ДанныеЗаполнения) = Тип(«ДокументСсылка.Инвентаризация») в обработке заполнения обоих документов.

5. Не работает проверка остатка животных при проведении документа ВыбытиеЖивотных.
Решение: установка параметру «МоментВремении» значения: Новый Граница(МоментВремени(), ВидГраницы.Включая)

6. В случае ошибки проведения (непрохождении контроля остатка) неправильно привязывается сообщение об ошибке.
Решение: исправил указание индекса привязываемой строки: (ВыборкаДетальныеЗаписи.НомерСтроки-1)

7. Неправильно работает контроль остатка в документе ПеремещениеЖивотных в обработке проведения:
Решение: В запрос, проверяющий остаток после проведения, добавил условие
РазмещениеЖивотныхОстатки.КоличествоОстаток < 0.

8. Ошибка в запросе обработки проведения модуля документа ВыбытиеЖивотных, не установлено условие отбора данных вложенного запроса ДанныеДокумента (проверка остатка, в принципе, будет осущестляться правильно, но производительность запроса с ростом количества документов будет ухудшаться и привязка сообщения об ошибке будет производится неправильно, поскольку № строки может получаться из другого документа).
Решение: добавил в запросе условие отбора во вложенном запросе ДанныеДокумента:
ВыбытиеЖивотныхЖивотные.Ссылка = &Ссылка.

9. При формировании документов Поступление и ВыбытиеЖивотных на основе Инвентаризации неправильно заполнять поля «источник поступления» и «направление» значениями по умолчанию, нужно как минимум оставлять эти поля пустыми, а лучше
Решение: завести в справочники (Источники поступления и Направления выбытия) предопределеное значение «По результатам инвентаризации» и подставлять его в документ, сформированный таким образом. В обработке заполнения в теле оператора
Если ТипЗнч(ДанныеЗаполнения) = Тип(«ДокументСсылка.Инвентаризация»)
добавить строку:
Направление = Справочники.НаправленияВыбытия.ПоРезультатамИнвентаризации //(это для документа ВыбытиеЖивотных, аналогично для документа Поступление)

9.1. Увеличил длину наименования Справочника НаправленияВыбытия до 50.

10. Отчет «Размещение животных» некорректно выводит данные на указанную дату (по умолчанию установлено — на указанную секунду), не включая последнюю.
Решение: Для исправления ситуации в СКД указал состав даты только ДАТА (вывод отчета на конкретную секунду представляется нецелесообразным), описано выражение для Периода: ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

11. Документ «Инвентаризация» заполняется при нажатии на кнопку «Заполнить» на текущую дату, а не на дату документа. При строгом следовании срокам проведения инвентаризаций, возможно это и не будет создавать проблем, однако если нужно будет сформировать документ задним числом, система не покажет остатков на это число.
Решение: передал в запрос остатков параметр — дату документа Инвентаризация

12. Внес корректировки в программный код, не влияющие на функционал системы, однако влияющий на производительность и удобство сопровождения:
12.1. Исправил вид регистра ВыбытияЖивотных — Обороты (расчет остатков по данному регистру не имеет смысла). Однако данное исправление повлияло на работоспособность отчета АнализВыбытийЖивотных, данные стали выводиться некорректно. Создал копию регистра, перепривязал к нему документ ВыбытиеЖивотных. Всё работает.
12.2. В обработке проведения документов ВыбытиеЖивотных и ПеремещениеЖивотных (при контроле остатков) убрал строку
Движения..Записывать = Истина,
поскольку применяется принудительная запись регистра до контроля остатков:
Движения.Записать()
Оставил строку:
Движения..Записать() в конце перед построением запроса на поиск отрицательных остатков.
12.3. Еще в обработках проведения документов несколько укоротил код (вместо указания ВидДвиженияНакопления…) сразу:
Движение = Движения..ДобавитьПриход()
Движение = Движения..ДобавитьРасход()
12.4. Вынес процедуру расчета отклонений фактического количества животных от расчетного в функцию общего серверного модуля, обращаюсь к ней из обработки заполнения документов Поступление и ВыбытиеЖивотных:

Функция ОтклоненияПоРезультатамИнвентаризации(ДокументИнвентаризации, ЦелевойДокумент) Экспорт

   
    Запрос = Новый Запрос;
    Запрос.Текст =
    «ВЫБРАТЬ
    |   ИнвентаризацияЖивотные.Животное,
    |   ИнвентаризацияЖивотные.Клетка,
    |   ВЫБОР
    |       КОГДА ИнвентаризацияЖивотные.КоличествоФакт — ИнвентаризацияЖивотные.Количество > 0
    |           ТОГДА ИнвентаризацияЖивотные.КоличествоФакт — ИнвентаризацияЖивотные.Количество
    |       ИНАЧЕ ИнвентаризацияЖивотные.Количество — ИнвентаризацияЖивотные.КоличествоФакт
    |   КОНЕЦ КАК Количество
    |ИЗ
    |   Документ.Инвентаризация.Животные КАК ИнвентаризацияЖивотные
    |ГДЕ
    |   ИнвентаризацияЖивотные.Ссылка = &Ссылка
    |   И ИнвентаризацияЖивотные.КоличествоФакт — ИнвентаризацияЖивотные.Количество =&Условие»;

   
    Запрос.УстановитьПараметр(«Ссылка», ДокументИнвентаризации);

   
    Если ТипЗнч(ЦелевойДокумент) = Тип(«ДокументСсылка.Поступление») Тогда
        Запрос.Текст = СтрЗаменить(Запрос.Текст, «=&Условие», «>0»);
    ИначеЕсли ТипЗнч(ЦелевойДокумент) = Тип(«ДокументСсылка.ВыбытиеЖивотных») Тогда
        Запрос.Текст = СтрЗаменить(Запрос.Текст, «=&Условие», «<0»);
    КонецЕсли;

   
    Возврат Запрос.Выполнить();

   
КонецФункции

12.5. Итоговый код обработки заполнения документа Поступление:

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

   
    Если ТипЗнч(ДанныеЗаполнения) = Тип(«ДокументСсылка.Инвентаризация») Тогда

       
        ДанныеДляЗагрузки = АвтозаполнениеДокументов.ОтклоненияПоРезультатамИнвентаризации(ДанныеЗаполнения, Ссылка);

        Животные.Загрузить(ДанныеДляЗагрузки.Выгрузить());

       
        Дата = ДанныеЗаполнения.Дата;

       
        ИсточникПоступления = Справочники.ИсточникиПоступления.ПоРезультатамИнвентаризации;

       
    Иначе

       
        ИсточникПоступления = Константы.ОсновнойИсточник.Получить();

       
    КонецЕсли;

   
КонецПроцедуры

12.6. Итоговый код обработки заполнения документа ВыбытиеЖивотных:

Процедура ОбработкаЗаполнения(ДанныеЗаполнения, СтандартнаяОбработка)

   
    Если ТипЗнч(ДанныеЗаполнения) = Тип(«ДокументСсылка.Инвентаризация») Тогда

       
        ДанныеДляЗагрузки = АвтозаполнениеДокументов.ОтклоненияПоРезультатамИнвентаризации(ДанныеЗаполнения, Ссылка);

        Животные.Загрузить(ДанныеДляЗагрузки.Выгрузить());

        Дата = ДанныеЗаполнения.Дата;

       
        Направление = Справочники.НаправленияВыбытия.ПоРезультатамИнвентаризации;

       
    Иначе

       
        Направление = Константы.ОсновноеНаправление.Получить();

       
    КонецЕсли;

   
КонецПроцедуры

Помощь миру

Опубликовал статью (правда сложно назвать её небольшой) о механизме создания управленческой отчетности в 1С, надеюсь, мой опыт окажется еще кому-нибудь полезным.
Сейчас статья на модерации, ссылки ниже:
http://nashe1c.ru/materials-view.jsp?id=443
http://infostart.ru/public/178081/

Здравствуйте, помогите пожалуйста. Делаю отчет в СКД. Нужно выводить ТоварыВРезерве.Остатки, на конец дня. В запросе указываю РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) Но период задается не четко датой, а типом «Стандартная дата начала» («Начало этого дня», «Начало этой недели» и т.д.) Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло. Стандартный период как то не притулила потому что смущает что нам дата начала и дата конца, а мне то только одна дата нужна, чтобы остатки конкретно на нее получить. Как правильно получить остатки на конец дня? обычные формы, если важно, КА 1.1

>Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло Как делали? И как поняли, что не помогло?

Для таблицы Остатков я бы получал так:

Попробуйте так: Заведите параметр КонДата, для которого в Выражении напишите &Период.ДатаОкончания А в запросе укажите КОНЕЦПЕРИОДА(&КонДата,»День»)

В запросе: РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) В параметрах СКД один параметр Период, тип Дата, у него в Выражение записано КОНЕЦПЕРИОДА(&Период,»День») В Настройках СКД в Параметрах отмечен Период и если у него значение менять на какое-то «Начало этого месяца» к примеру, дата ставится например 01.11.2017 0:00:00 И в отчете выводится Параметры: Период:01.11.2017 0:00:00

Ну так параметр-то вы не меняете. Вы остатки проверьте, на начало они выдаются или на конец.

Тогда Период типа Стандартный период, а КонДата -типа дата? И в настройках СКД в параметрах все равно период?

Вроде меняется как надо..но я путаться уже стала. По идее должно быть же достаточно в параметрах указать КОНЕЦПЕРИОДА(&Период,»День»)? А то что он выводит в Отчете 00:00:00 это не важно?

Какие поля вы выводите в отчет нам неведомо, но в качестве параметра у вас указывается конец дня. Вот только записи со временем 23:59:59 у вас в отчет не попадут, проверьте.

а куда в СКД дописать можно ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

В запрос, туда где указывается период остатков Например: РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(ДобавитьКДате(КонецПериода(&КонДата, «День»), «Секунда», 1), )

Ну или в выражении параметра СКД

спасибо большое, работает.правда записей на 23:59 у меня нет. а с 23:59 это особенность 1С такая? И считается же что это та же дата? это не переходит еще на 00:00 следующего дня или как-то еще?

Читай про даты, границы и моменты времени

Виртуальная таблица Остатки даёт остатки на границу НЕ ВКЛЮЧАЯ. Это такая особенность виртуальной таблицы остатков. Таблица ОстаткиИОбороты выдаёт данные по границу ВКЛЮЧАЯ

вот только прочитала про то что написано в . Буду вникать подробнее, спасибо что подсказали что к чему

Тэги: 1С 8

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

Автор stillenough, 03 апр 2015, 10:39

0 Пользователей и 1 гость просматривают эту тему.

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

при указанных значения периода, берет конец без 23:59:59. Конструкция КОНЕЦПЕРИОДА не работает. Как заставить работать как следует?


КонецДня(КОНЕЦПЕРИОДА ())

Помог? Нажми — Спасибо :)
skype: Soprov1C



… а МоментВремени() передавать в параметр?



КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)+1
или
ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ),СЕКУНДА,1)
или
просто &КонецПериода имеющее тип Граница с видом границы «Включая».

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.


Цитата: stillenough от 03 апр 2015, 10:39ОстаткиИОбороты(&НачалоПериода, КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ),

Уберите вообще из запроса ваши параметры. Используйте те параметры что дает СКД или используйте «Стандартный период». Насколько я знаю,дата окончания в стандартном периоде включает последнюю секунду.


Цитата: cska-fanat-kz от 03 апр 2015, 11:10
КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)+1
или
ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ),СЕКУНДА,1)
или
просто &КонецПериода имеющее тип Граница с видом границы «Включая».

Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("КонецПериода"));
Граница = Новый Граница(КонецДня(Дата), ВидГраницы.Включая);
Параметр.Значение = Граница;
Параметр.Использование = Истина;

это то что надо, я так понимаю. Вот только куда запихнуть? Скажите, пожалуйстра, куда или где почитать пример.


гуглите «программное формирование отчета на СКД», в сети полно примеров!

Получил помощь — скажи СПАСИБО.
Разобрался сам — расскажи другим.


короче после получаса мучений, сохранил как внешний и все заработало. чудеса.


СКД остатки на конец дня

Я

  

I_learn_1c

21.11.17 — 13:51

Здравствуйте,

помогите пожалуйста.

Делаю отчет в СКД. Нужно выводить ТоварыВРезерве.Остатки, на конец дня.

В запросе указываю

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, )

Но период задается не четко датой, а типом «Стандартная дата начала» («Начало этого дня», «Начало этой недели» и т.д.)

Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло.

Стандартный период как то не притулила потому что смущает что нам дата начала и дата конца, а мне то только одна дата нужна, чтобы остатки конкретно на нее получить.

Как правильно получить остатки на конец дня? обычные формы, если важно, КА 1.1

  

azernot

1 — 21.11.17 — 14:03

>Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло

Как делали? И как поняли, что не помогло?

  

Гипервизор

2 — 21.11.17 — 14:05

(0) Для таблицы Остатков я бы получал так:

ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

  

azernot

3 — 21.11.17 — 14:05

Попробуйте так:

Заведите параметр

КонДата, для которого в Выражении напишите &Период.ДатаОкончания

А в запросе укажите

КОНЕЦПЕРИОДА(&КонДата,»День»)

  

I_learn_1c

4 — 21.11.17 — 14:08

(1)  В запросе:

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, )

В параметрах СКД один параметр Период, тип Дата, у него в Выражение записано КОНЕЦПЕРИОДА(&Период,»День»)

В Настройках СКД в Параметрах отмечен Период и если у него значение менять на какое-то «Начало этого месяца» к примеру, дата ставится например 01.11.2017 0:00:00

И в отчете выводится Параметры: Период:01.11.2017 0:00:00

  

I_learn_1c

5 — 21.11.17 — 14:09

(2) а куда это писать?

  

azernot

6 — 21.11.17 — 14:10

(4) Ну так параметр-то вы не меняете. Вы остатки проверьте, на начало они выдаются или на конец.

  

I_learn_1c

7 — 21.11.17 — 14:11

(3) Тогда Период типа Стандартный период, а КонДата -типа дата?

И в настройках СКД в параметрах все равно период?

  

I_learn_1c

8 — 21.11.17 — 14:12

(6) сейчас, пробую

  

azernot

9 — 21.11.17 — 14:14

(7) Да.

  

I_learn_1c

10 — 21.11.17 — 14:29

(9) Вроде меняется как надо..но я путаться уже стала.

По идее должно быть же достаточно в параметрах указать КОНЕЦПЕРИОДА(&Период,»День»)? А то что он выводит в Отчете 00:00:00 это не важно?

  

Гипервизор

11 — 21.11.17 — 14:40

(10) Какие поля вы выводите в отчет нам неведомо, но в качестве параметра у вас указывается конец дня.

Вот только записи со временем 23:59:59 у вас в отчет не попадут, проверьте.

  

I_learn_1c

12 — 21.11.17 — 14:49

(11)а куда в СКД дописать можно

ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

  

I_learn_1c

13 — 21.11.17 — 14:49

?

  

azernot

14 — 21.11.17 — 14:52

В запрос, туда где указывается период остатков

Например:

РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(ДобавитьКДате(КонецПериода(&КонДата, «День»), «Секунда», 1), )

  

Гипервизор

15 — 21.11.17 — 14:53

Ну или в выражении параметра СКД

  

I_learn_1c

16 — 21.11.17 — 15:33

(14)спасибо большое, работает.правда записей на 23:59 у меня нет.

а с 23:59 это особенность 1С такая? И считается же что это та же дата? это не переходит еще на 00:00 следующего дня или как-то еще?

  

I_learn_1c

17 — 21.11.17 — 15:35

(15) и вам тоже спасибо)

  

vicof

18 — 21.11.17 — 15:37

(16) Читай про даты, границы и моменты времени

  

azernot

19 — 21.11.17 — 15:37

Виртуальная таблица Остатки() даёт остатки на границу НЕ ВКЛЮЧАЯ. Это такая особенность виртуальной таблицы остатков.

Таблица ОстаткиИОбороты выдаёт данные по границу ВКЛЮЧАЯ

  

I_learn_1c

20 — 21.11.17 — 15:40

(18) вот только прочитала про то что написано в (19) . Буду вникать подробнее, спасибо что подсказали что к чему

Обратная связь

Караков Александр Александрович
Много нового и интересного я узнал в этом курсе начиная с общих механизмов платформы,заканчивая автоматизацией
расчета зарплаты.
на практике полученные знания пригодились для построения внешних печатных форм и обработки заполнения табличных частей
документов, построению отчетов в СКд в конфигурации Бухгалтерии предприятия.
Сейчас работаю над проектом перехода крупной организации с 7.7 на 8.2 Бухгалтерию предприятия. Очень доволен форматом курса, большое спасибо!!!
Буду слушать продвинутый.

Ошибки и решения.

1 . В форме документа Закупка,КомплектацияБлюд,Продажа на панели навигации нет команд перехода на движения в регистрах сделанных этим документом
Устанавливается в командном интерфейсе управляемой формы

2. Общий модуль РаботаСДокументамиКлиент компилируется на сервере ,а необходимо компилировать на клиенте.

3 В документе Закупка Нет группировки строк (будет дублирование в регистре).обйти Циклом таблицу вводя записи в регистр
Движения.ОстаткиТМЦ.Записывать = Истина;
Движения.Закупки.Записывать = Истина;
Таблица = Номенклатура.Выгрузить();
Таблица.Свернуть(«Номенклатура,Цена»,»Количество,Сумма»);

Для Каждого ТекСтрокаНоменклатура Из Таблица Цикл
Движение = Движения.ОстаткиТМЦ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаНоменклатура.Номенклатура;
Движение.Количество = ТекСтрокаНоменклатура.Количество;
// регистр Закупки Приход
Движение = Движения.Закупки.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаНоменклатура.Номенклатура;
Движение.Количество = ТекСтрокаНоменклатура.Количество;
Движение.Сумма = ТекСтрокаНоменклатура.Сумма;
КонецЦикла;

4 В Регистре сведений состав блюд имеется измерение Количество, а оно должно быть ресурсом , для того чтобы платформа не давала
записать ошибочные сведения (На одно блюдо , одна компонента и разное количество)

5-6.В общем модуле неправильный код контроля остатков

Перписал запрос по контролю остатков (выбираем различную номенклатуру из табличной части документа,используем левое соединение к таблице документа,
в параметре Момент устанавливаем границу включая движения самого документа)

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

Если ИмяДокумента»Продажа» Тогда

Запрос.Текст = СтрЗаменить(Запрос.Текст, «Продажа», ИмяДокумента);

КонецЕсли;
Граница = Новый Граница(ДокументОбъект.МоментВремени(), ВидГраницы.Включая);
Запрос.УстановитьПараметр(«Момент», Граница);

7. При выводе сообщения пользователю не правильно позиционируется поле вывода ,необходимо
Сообщение.Поле = «Номенклатура[«+(ВыборкаДетальныеЗаписи.НомерСтроки-1)+»].Количество»;

8-9.В документе комплектация в модуле объекта процедуры обработки проведения Нет группировки строк (будет дублирование в регистре).обйти Циклом таблицу вводя записи в регистр,
так же отсутствует необходимость дважды установки флага записывать для набора записей ОстаткиТМЦ

Процедура ОбработкаПроведения(Отказ, Режим)

// регистр ОстаткиТМЦ Приход
Движения.ОстаткиТМЦ.Записывать = Истина;
Движение = Движения.ОстаткиТМЦ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Приход;
Движение.Период = Дата;
Движение.Номенклатура = Блюдо;
Движение.Количество = Количество;

// регистр ОстаткиТМЦ Расход
// Движения.ОстаткиТМЦ.Записывать = Истина;

Таблица = Номенклатура.Выгрузить();
Таблица.Свернуть(«Номенклатура»,»Количество»);

Для Каждого ТекСтрокаСостав Из Таблица Цикл
Движение = Движения.ОстаткиТМЦ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаСостав.Номенклатура;
Движение.Количество = ТекСтрокаСостав.Количество;
КонецЦикла;

Движения.Записать();

Отказ = РаботаСДокументамиСервер.ЕстьОтрицательныеОстаткиПоНоменклатуреДокумента(ЭтотОбъект, «КомплектацияБлюд»);

КонецПроцедуры

10.В форме документа продажа обращение к КонстантыМенеджер можно только на сервере

&НаКлиенте
Процедура ПриОткрытии(Отказ)

Если Объект.Ссылка.Пустая() Тогда

Объект.Покупатель = ПолучитьОсновногоПокупателя();

КонецЕсли;

КонецПроцедуры

//Обращение к КонстантыМенеджер можно только на сервере
//
&НаСервереБезКонтекста
Функция ПолучитьОсновногоПокупателя()
Возврат Константы.ОсновнойПокупатель.Получить();
КонецФункции

11.В документе продажа в модуле объекта процедуры обработки проведения Нет группировки строк (будет дублирование в регистре).обйти Циклом таблицу вводя записи в регистр,

Процедура ОбработкаПроведения(Отказ, Режим)

// регистр ОстаткиТМЦ Расход
Движения.ОстаткиТМЦ.Записывать = Истина;
Движения.Продажи.Записывать = Истина;

Таблица = Номенклатура.Выгрузить();
Таблица.Свернуть(«Номенклатура,Цена»,»Количество,Сумма»);

Для Каждого ТекСтрокаНоменклатура Из Таблица Цикл
Движение = Движения.ОстаткиТМЦ.Добавить();
Движение.ВидДвижения = ВидДвиженияНакопления.Расход;
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаНоменклатура.Номенклатура;
Движение.Количество = ТекСтрокаНоменклатура.Количество;

// регистр Продажи Приход
Движение = Движения.Продажи.Добавить();
Движение.Период = Дата;
Движение.Номенклатура = ТекСтрокаНоменклатура.Номенклатура;
Движение.Количество = ТекСтрокаНоменклатура.Количество;
Движение.Сумма = ТекСтрокаНоменклатура.Сумма;
КонецЦикла;

Движения.Записать();

Отказ = РаботаСДокументамиСервер.ЕстьОтрицательныеОстаткиПоНоменклатуреДокумента(ЭтотОбъект);

КонецПроцедуры

12.В отчете Остатки необходимо добавить параметр НаДату ,который будет вводить пользователь,а в выражение параметра Период ввести : ДобавитьКДате(КонецПериода(&НаДату, «День»), «Секунда», 1)
для получения корректных остатков. параметр НаДату включим в быстрые пользовательские настройки

13. Регистр накопления Продажи должен быть оборотным, т.к. иначе регистр не будет закрываться в ноль
14. В отчете ПродажиЗакупки изменим Запрос в СКД так же в пользовательском режиме пересчитаем итоги для корректного
формирования отчета.

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

Помощь миру

http://forum.infostart.ru/forum15/topic68900/message739993/#message739993

http://forum.infostart.ru/forum26/topic70963/

//продолжение следует

Имитация (программное) нажатия Клавиш 2
В системе » 1С:Предприятие» часто возникает ситуация, когда нужно закрыть окно сообщений, появляющееся при вызове метода Сообщить. Стандартно это окно закрывается при нажатии комбинации клавиш Ctrl + Shift + Z , но можно сделать это и программно.


Импорт — экспорт данных через XML. Обработка обмена документами 7
Восстановление документов 1С из архива в рабочую базу (XML обмен)
Не редко требуется восстановить данные испорченного документа 1С из архива базы после не умышленных, а зачастую ошибочных, действий удачливого пользователя. Самым простым способом я


Использование предложения ДЛЯ ИЗМЕНЕНИЯ 0
Предложение ДЛЯ ИЗМЕНЕНИЯ позволяет заблаговременно заблокировать некоторые данные (которые могут читаться транзакцией другого соединения) уже при считывании, чтобы исключить взаимные блокировки при записи. ДЛЯ ИЗМЕНЕНИЯ дает возможность указать в


Использование Предопределенных данных конфигурации 2
Текст запроса может содержать предопределенные данные конфигурации, такие как:
— значения перечислений;
— предопределенные данные:
— справочников;
— планов видов характеристик;
— планов счетов;
— планов видов расчетов;
— пустые ссылки;


Как в запросе указать пустую дату? — ДАТАВРЕМЯ() 7
Для указания Даты и Времени в запросе предназначена функция ДАТАВРЕМЯ(
ДАТАВРЕМЯ ( Целое число , Целое число , Целое число )
Значения типа дата задаются с помощью ключевого слова ДАТАВРЕМЯ, после которого в скобках последовательно указываю


Посмотреть все результаты поиска похожих

Здравствуйте, помогите пожалуйста. Делаю отчет в СКД. Нужно выводить ТоварыВРезерве.Остатки, на конец дня. В запросе указываю РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) Но период задается не четко датой, а типом «Стандартная дата начала» («Начало этого дня», «Начало этой недели» и т.д.) Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло. Стандартный период как то не притулила потому что смущает что нам дата начала и дата конца, а мне то только одна дата нужна, чтобы остатки конкретно на нее получить. Как правильно получить остатки на конец дня? обычные формы, если важно, КА 1.1

>Пробовала в параметрах СКД для периода писать КОНЕЦПЕРИОДА(&Период,»День») — не помогло Как делали? И как поняли, что не помогло?

Для таблицы Остатков я бы получал так:

Попробуйте так: Заведите параметр КонДата, для которого в Выражении напишите &Период.ДатаОкончания А в запросе укажите КОНЕЦПЕРИОДА(&КонДата,»День»)

В запросе: РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&Период, ) В параметрах СКД один параметр Период, тип Дата, у него в Выражение записано КОНЕЦПЕРИОДА(&Период,»День») В Настройках СКД в Параметрах отмечен Период и если у него значение менять на какое-то «Начало этого месяца» к примеру, дата ставится например 01.11.2017 0:00:00 И в отчете выводится Параметры: Период:01.11.2017 0:00:00

Ну так параметр-то вы не меняете. Вы остатки проверьте, на начало они выдаются или на конец.

Тогда Период типа Стандартный период, а КонДата -типа дата? И в настройках СКД в параметрах все равно период?

Вроде меняется как надо..но я путаться уже стала. По идее должно быть же достаточно в параметрах указать КОНЕЦПЕРИОДА(&Период,»День»)? А то что он выводит в Отчете 00:00:00 это не важно?

Какие поля вы выводите в отчет нам неведомо, но в качестве параметра у вас указывается конец дня. Вот только записи со временем 23:59:59 у вас в отчет не попадут, проверьте.

а куда в СКД дописать можно ДобавитьКДате(КонецПериода(&Период, «День»), «Секунда», 1)

В запрос, туда где указывается период остатков Например: РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(ДобавитьКДате(КонецПериода(&КонДата, «День»), «Секунда», 1), )

Ну или в выражении параметра СКД

спасибо большое, работает.правда записей на 23:59 у меня нет. а с 23:59 это особенность 1С такая? И считается же что это та же дата? это не переходит еще на 00:00 следующего дня или как-то еще?

Читай про даты, границы и моменты времени

Виртуальная таблица Остатки даёт остатки на границу НЕ ВКЛЮЧАЯ. Это такая особенность виртуальной таблицы остатков. Таблица ОстаткиИОбороты выдаёт данные по границу ВКЛЮЧАЯ

вот только прочитала про то что написано в . Буду вникать подробнее, спасибо что подсказали что к чему

Тэги: 1С 8

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

СКД. Граница периода

документацию читать надо и пробовать: 

Параметр = КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Новый ПараметрКомпоновкиДанных("Период"));
Граница = Новый Граница(КонецДня(Дата), ВидГраницы.Включая);
Параметр.Значение = Граница;
Параметр.Использование = Истина;

всё четко работает


(с) I_G_O_R

или в выражении параметра Период (тип Дата) указать конструкцию

ВЫБОР &Период КОГДА ДатаВремя(1,1,1) ТОГДА ДатаВремя(1,1,1)  ИНАЧЕ ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&Период, «ДЕНЬ»), «СЕКУНДА», 1) КОНЕЦ

(с) http://www.spec8.ru/d08m12-lastsec  , Видео урок из статьи

Всё это обусловлено тем, что остатки виртуальной таблицы получаются на начало секунды, тем самым при проведении документов мы будем получать актуальные остатки на момент перед датой документа, а не после.

Популярные сообщения из этого блога

Вводная: текст в заголовке колонки отчета необходимо сориентировать «на 90»,  в ячейках же отчета оставить «на 0». Гуглопоиск отсылает к веткам различных форумов, где всё сводится к «нужно делать самостоятельный макет». Оказалось необязательно.

Вводная: реализовать ввод Заказа поставщику на основании Заказа на Ремонт. решить через расширения конфигурации. Хочу обратить ваше внимание, не нужно добавлять в расширение критерий отбора, для 8.3.12 нам не доступно добавлениеизменение состава критерия. Более того может зависать конфигуратор (столкнулся с последней версией 8.3.14 + ERP) Разработку рекомендую вести с применением хранилища и для расширения. Иначе устанете потом выгребать чего лишнего включили в расширение при добавлении таких или схожих обектов с составными типами и подобное. Все текущие типовые решения сейчас идут в режиме совместимости 8.3.12, в прочем и для 8.3.14 (и даже 8.3.15 ничего не поменялось). Что нам нужно было бы сделать при отказе от поддержки: 1) добавить наш документ в Критерий отбора (состав, реквизиты); 2) в раздел Ввод на основании целевого документа. И что с целью сохранения поддержки. Как сделать это же для расширения: 1) Добавить реквизит расширения Документы.ЗаказПоставщику._За

Когда нужно в макете (табличном документе) изменить ширину колонки  для конкретных строк: 1. Выделить всю строку (строки). Именно всю, фокус для выделенной области не работает. 2. Нажимаем и не отпускает Ctrl 3. С помощью мыши изменяют ширину любой из колонок — будет задан вопрос об создании нового формата строк — соглашаемся. Как же прекрасен мир, где для модификаций не достаточно просто использовать контекстное меню и диалог редактора свойств, где нужно знать заветные слова и таинства танца. 90ые, моё почтение. UPD Программно, тоже самое, можно сделать через ТабДок = Новый ТабличныйДокумент(); ТабДок.Область(1,,1,).СоздатьФорматСтрок(); ТабДок.Область(1,1).ШиринаКолонок = 70; ТабДок.Область(1,2).ШиринаКолонок = 30; ТабДок.Область(2,,2,).СоздатьФорматСтрок(); ТабДок.Область(2,1).ШиринаКолонок = 30; ТабДок.Область(2,2).ШиринаКолонок = 70; ТабДок.Показать();

Понравилась статья? Поделить с друзьями:
  • Добавить аккаунт гугл ошибка
  • Доброго времени суток это ошибка
  • До недавнешнего времени какая ошибка
  • До экзаменов рукой подать лексическая ошибка
  • До тысяча девятьсот пятого года ошибка