Имя: Пароль:
1C
1С v8
Вывод цены из регистра накопления
,
0 ya1snik
 
08.01.13
10:56
Я начинающий 1с-ник. Для выборки цены товара из регистра накопления ТоварыНаСкладах использую следующий код.

ВЫБОР
КОГДА ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг ТОГДА Документ.РеализацияТоваровУслуг.Товары.Цена
КОНЕЦ КАК Цена

Где моя ошибка?
5 Саша80
 
08.01.13
11:06
цены хранятся в регистре сведений, СрезПОследних()
6 Галахад
 
гуру
08.01.13
11:10
(5) Ну и как оттуда получить цену на дату продажи:
7 Wobland
 
08.01.13
11:11
(6) боюсь предположить... период сказать?
8 Галахад
 
гуру
08.01.13
11:13
(7) Это правильный путь?
9 Саша80
 
08.01.13
11:15
(6) ВЫБРАТЬ
   |    ДКВОбороты.ДКВНомен КАК ДКВНомен,
   |    ДКВОбороты.ДКВКод КАК ДКВКод,
   |    ДКВОбороты.ДКВКолОборот КАК ДКВКолОборот,
   |    СтоимостьСрезПоследних.Цена КАК Цена,
   |    СтоимостьСрезПоследних.Цена * ДКВОбороты.ДКВКолОборот КАК Сумма
   |ИЗ
   |    РегистрНакопления.ДКВ.Обороты(, , Регистратор, ) КАК ДКВОбороты
   |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.Стоимость.СрезПоследних КАК СтоимостьСрезПоследних
   |        ПО ДКВОбороты.ДКВНомен.Ссылка = СтоимостьСрезПоследних.Номенклатура.Ссылка
10 Саша80
 
08.01.13
11:15
самое простое
11 Саша80
 
08.01.13
11:15
это из самописки, но думаю понятно
12 ya1snik
 
08.01.13
11:16
Общий код следующий:

ВЫБРАТЬ
ТоварыНаСкладах.Регистратор.Номер КАК НомерДокумента,
ТоварыНаСкладах.Номенклатура.Наименование КАК Товар,
ТоварыНаСкладах.Количество КАК Количество,
ВЫБОР
 КОГДА ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг ТОГДА Документ.РеализацияТоваровУслуг.Товары.Цена
КОНЕЦ КАК Цена
ИЗ РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

В случае если документом является Реализация товаров и услуг, то необходимо вывести и цену.
13 ya1snik
 
08.01.13
11:17
Саша80, его можно туда же присобачить?
14 Wobland
 
08.01.13
11:18
(13) соединяй, соединяей свои товары
15 Галахад
 
гуру
08.01.13
11:18
(11) Не. Не понятно. Вчера были по 10, а сегодня по 15. И чего?
16 Саша80
 
08.01.13
11:19
(13)можно, посмотри как у меня в запросе, у тебя наименование регистра сведений с Ценами какое? ЦенаНоменклатуры?
17 ya1snik
 
08.01.13
11:22
Мне необходима цена не по прайсу, а непосредственно из документа. Я использую регистр накопления ТоварныНаСкладах
18 Саша80
 
08.01.13
11:25
нет, через РН не получится, бери из РС, там отбор по регистратору делай и цену вытаскивай
19 Саша80
 
08.01.13
11:27
а хотя стоп..там же регистратор всегда Установка цен Номенклатуры...
20 Саша80
 
08.01.13
11:28
тогда два регистра РН Товары на складах и РС ЦеныНоменклатуры и задавай для РС период а у РН Регистратор
21 Zubek
 
08.01.13
11:31
Не правильно использовать регистр цен, для получения цены фактической продажи. Т.к. цена может быть изменена руками в документе продажи, могут быть скидки\наценки и т.д.

Галахад прав. Нужно использовать регистр "Продажи"
22 ya1snik
 
08.01.13
11:38
Для определения вида документа-регистратора я использую след. код:

ВЫБОР
КОГДА ТоварыНаСкладах.Регистратор ССЫЛКА Документ.РеализацияТоваровУслуг ТОГДА ""Реализация товаров и услуг""
КОНЕЦ КАК ВидДокумента

Неужели нельзя сюда же воткнуть код для получения данных из табличной части этого документа?
23 Popkorm
 
08.01.13
11:59
(22) Табличную Часть отдельно надо тащить,и потом левым соединением ее..........
24 ya1snik
 
08.01.13
12:36
Как же получить этот доступ?
Пробую следующим способом:

ВЫБРАТЬ
   ТоварыНаСкладах.Регистратор КАК Документ
   ПОМЕСТИТЬ Документы
   ИЗ
   РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
   ГДЕ
   ТоварыНаСкладах.Регистратор.Дата МЕЖДУ &ДатаН И &ДатаК
   И ТоварыНаСкладах.Номенклатура В ИЕРАРХИИ(&Номенклатура)

   СГРУППИРОВАТЬ ПО
   ТоварыНаСкладах.Регистратор
   ;
   ////////////////////////////////////////////////////////////////////////////////
   
   ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка.Дата КАК Дата,
   РеализацияТоваровУслуг.Ссылка.Контрагент КАК Клиент,
   РеализацияТоваровУслуг.Товары.Номенклатура КАК Товар
   РеализацияТоваровУслуг.Товары.Цена КАК Цена
   ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   ГДЕ
   РеализацияТоваровУслуг.Ссылка В
           (ВЫБРАТЬ
               Документы.Документ
           ИЗ
               Документы)

Однако, при выгрузке данных в excel выдает ошибку "Ошибка при установке значения атрибута контекста (Value): Произошла исключительная ситуация (0x800a03ec)"
В чем может быть проблема?
25 Wobland
 
08.01.13
12:38
проблема может быть в запросе
26 Галахад
 
гуру
08.01.13
12:44
Прикольно.
27 Popkorm
 
08.01.13
13:01
(24) У тебя запрос работает?!

И тута еще надо:
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг КАК ЯБУЗОВУ
   |        ПО РеализацияТоваровУслуг.Ссылка = ЯБУЗОВУ.Ссылка
28 ya1snik
 
08.01.13
13:15
Нихрена не работает. Руки опускаются...
29 Popkorm
 
08.01.13
13:28
(28) нам гадать на кофейне гуще что у тебя не работает??!!
31 Lama12
 
08.01.13
13:38
(17) Если нужны цены из документа, тогда зачем регистр?
32 ya1snik
 
08.01.13
13:41
Из регистра я беру документ, его дату и номер, контрагента, товар, количество и цену. Проблема в получении цены.
33 ya1snik
 
08.01.13
13:45
Этим кодом я получаю все кроме цены.

ВЫБРАТЬ
   ТоварыНаСкладах.Регистратор.Дата КАК Дата,
   ТоварыНаСкладах.Регистратор.Контрагент.Наименование КАК Клиент,
   ТоварыНаСкладах.Регистратор.Номер КАК НомерДокумента,
   ТоварыНаСкладах.Номенклатура.Наименование КАК Товар,
   ТоварыНаСкладах.Количество КАК Количество
   ИЗ
   РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах

Как вытащить цену?
34 Popkorm
 
08.01.13
13:53
(33) откуда ему взяться,если у тебя в запросе нет цены
35 ya1snik
 
08.01.13
13:59
В этом-то я и прошу помощи.
36 Vladal
 
08.01.13
14:04
(35) В чём считать стоимость товаров на складах? В каких ценах?
37 ya1snik
 
08.01.13
14:06
(36) Цены берутся непосредственно из документа.
38 Popkorm
 
08.01.13
14:08
(35)

как то так,писал от твоих слов,конструктором сам уж накидаешь:


ВЫБРАТЬ
   ТоварыНаСкладах.Регистратор КАК Документ
   ПОМЕСТИТЬ Документы
   ИЗ
   РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
   ГДЕ.............................
....................................
....................................

ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка.Дата КАК Дата,
   РеализацияТоваровУслуг.Ссылка.Контрагент КАК Клиент,
   РеализацияТоваровУслуг.Товары.Номенклатура КАК Товар
   РеализацияТоваровУслуг.Товары.Цена КАК Цена
   ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Ссылка КАК Документы
   |        ПО РеализацияТоваровУслуг.Ссылка = РеализацияТоваровУслуг.Товары.Ссылка

ГДЕ
   РеализацияТоваровУслуг.Ссылка В
           (ВЫБРАТЬ
               Документы.Документ
           ИЗ
               Документы)
39 Lama12
 
08.01.13
14:08
Какова конечная цель задчи?
40 Popkorm
 
08.01.13
14:09
(37) ты вытащи сначала из запроса Реализацию+его табличную часть
41 Popkorm
 
08.01.13
14:10
(39) я так понял что из Документа вытащить реквизит цену
42 ya1snik
 
08.01.13
14:13
(39) Получить вышеуказанные данные (32) и выгрузить их в excel
43 Пеппи
 
08.01.13
14:16
(42) Вытащи из регистра сумму , кроме количества. В таком случае цена не проблема
44 ya1snik
 
08.01.13
14:25
(38) Ошибка: "Ошибка при вызове метода контекста (Выполнить): {(20, 19)}: Таблица не найдена "Документ.РеализацияТоваровУслуг.Ссылка"
ЛЕВОЕ СОЕДИНЕНИЕ <<?>>Документ.РеализацияТоваровУслуг.Ссылка КАК Документы"
45 ya1snik
 
08.01.13
14:26
(43) Что даст сумма? В документе может быть несколько наименований товара, в количестве N, по цене M. Как я вычислю цену?
46 Popkorm
 
08.01.13
14:28
(45) сумма\количество=цена
47 Lama12
 
08.01.13
14:32
(42) Дарю.

ВЫБРАТЬ
   РеализацияТоваровУслугТовары.Ссылка,
   РеализацияТоваровУслугТовары.Ссылка.Дата,
   РеализацияТоваровУслугТовары.Ссылка.Номер,
   РеализацияТоваровУслугТовары.Ссылка.Контрагент,
   РеализацияТоваровУслугТовары.Номенклатура,
   РеализацияТоваровУслугТовары.Цена
ИЗ
   Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
48 ya1snik
 
08.01.13
14:32
(46) Сумма - это сумма всего документа или только одного товара?
49 Lama12
 
08.01.13
14:32
(47) +
Только с валютой сам разбирайся.
50 Lama12
 
08.01.13
14:33
Зачем регистр, так и не понял.
51 ya1snik
 
08.01.13
14:36
(50) Мне нужно выбрать все документы, касающиеся движения товара на складе. А если в документе есть цена, тогда и она тоже нужна.
52 Lama12
 
08.01.13
14:38
(51) В (32) про это не сказано.
53 Lama12
 
08.01.13
14:39
(51) Вообще странно получается. Смысл от цены в документе если это анализ движений товара по складу?
Учет может вестись обособленный, а может по средней.
Задача точно поствлена корректно?
Какова цель получаемого отчета?
54 Пеппи
 
08.01.13
14:40
(48) а ты смотрел сам регистр?)) там сумма по каждой номенклатуре.
55 hhhh
 
08.01.13
14:40
(52) ты возьми не ТоварыНаСкладах, а другой регистр, где есть сумма, тогда просто будет

Сумма/Количество КАК Цена
56 Popkorm
 
08.01.13
14:42
(44) просто тупо мое копировать не надо,
ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка КАК Документ,
   РеализацияТоваровУслугТовары.Количество,
   РеализацияТоваровУслугТовары.Номенклатура,
   РеализацияТоваровУслугТовары.Цена
ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
       ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
       ПО РеализацияТоваровУслуг.Ссылка = РеализацияТоваровУслугТовары.Ссылка
57 Popkorm
 
08.01.13
14:44
+(56) его тоже во ВремТаблицу,и там уже соединяй\отбирай Регистр+документы
58 Пеппи
 
08.01.13
14:47
(55)забыла уже, этот регистр только с количеством? ясно))
59 ya1snik
 
08.01.13
15:02
(53) Таковы требования головной организации. Еще раз о задаче: выгрузить в формате excel движение товаров за определенный период с детализацией Наименования документа, его Номера и Даты, Контрагента, Кода и Наименования товара, его Количества и отпущенной Цены. К сожалению руководство не отчитывается нам о своих целях.
60 ya1snik
 
08.01.13
15:02
(55) Какой регистр будет уместней использовать в данном случае? (59)
61 Zubek
 
08.01.13
15:03
(60) Продажи
62 ya1snik
 
08.01.13
15:05
(61) Поступление, перемещение, списание и оприходование товаров как я знаю туда не попадают.
63 Lama12
 
08.01.13
15:05
(61) Не подойдет.
Ему нужны все движения по складам.
(59) А вот, то что руководство не отчитывается о целях работ - хреново.
Понаделать можно совсем не то, что нужно. А иногда можно сделать совсем другое зная цели, и достич цель более эффективно.
64 Пеппи
 
08.01.13
15:09
(60) регистр партии товаров есть еще
65 Aprobator
 
08.01.13
15:19
В СКД это довольно просто решается. 2 набора данных и связь между ними и все дела.
66 ya1snik
 
08.01.13
17:03
(56) В консоли все работает, но при сохранении в excel выходит ошибка - "Ошибка при установке значения атрибута контекста (Value): Произошла исключительная ситуация (0x800a03ec)"
В коде экспорта данных ошибки нет, т.к. другие данные выгружатются нормально, а при добавлении этого кода - ошибка.
Вот мой код:
ВЫБРАТЬ
   ТоварыНаСкладах.Регистратор КАК Документ
   ПОМЕСТИТЬ Документы
   ИЗ
   РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
   ГДЕ
   ТоварыНаСкладах.Регистратор.Дата МЕЖДУ &ДатаН И &ДатаК
   СГРУППИРОВАТЬ ПО
   ТоварыНаСкладах.Регистратор
   ;
   ////////////////////////////////////////////////////////////////////////////////
   ВЫБРАТЬ
   РеализацияТоваровУслуг.Ссылка.Дата КАК Дата,
   РеализацияТоваровУслуг.Ссылка.Контрагент КАК Клиент,
   РеализацияТоваровУслугТовары.Номенклатура КАК Товар,
   ВЫРАЗИТЬ(РеализацияТоваровУслугТовары.Цена/РеализацияТоваровУслугТовары.Коэффициент КАК ЧИСЛО (15,2)) КАК Цена
   ИЗ
   Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
   ЛЕВОЕ СОЕДИНЕНИЕ Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
           ПО РеализацияТоваровУслуг.Ссылка = РеализацияТоваровУслугТовары.Ссылка
           ГДЕ
   РеализацияТоваровУслуг.Ссылка В
           (ВЫБРАТЬ Документы.Документ ИЗ Документы) И
               РеализацияТоваровУслугТовары.Номенклатура В ИЕРАРХИИ(&Номенклатура)";
67 Aprobator
 
08.01.13
17:07
И где тут код выгрузки?
68 ya1snik
 
08.01.13
17:21
Нашел ошибку, код номенклатуры был неверно указан. Но данных все равно нет, пустая таблица, хотя в консоли все гуд. Вот код экспорта:
номенклатурнаяГруппа = Справочники.Номенклатура.НайтиПоКоду("Ц0000000274");
   Запрос.УстановитьПараметр("Номенклатура", номенклатурнаяГруппа);  
     Запрос.УстановитьПараметр("ДатаН", началоПериода);
   Запрос.УстановитьПараметр("ДатаК", конецПериода);
   Выборка = Запрос.Выполнить().Выбрать();
   номерСтроки=2;
   Пока Выборка.Следующий() Цикл
     Лист.Cells(номерСтроки, 1).Value = номерСтроки-1;
     Лист.Cells(номерСтроки, 3).Value = Формат(Выборка.Дата, "ДФ=dd.MM.yyyy");
     Лист.Cells(номерСтроки, 4).Value = Формат(Выборка.Дата, "ДФ=dd.MM.yyyy");
     Лист.Cells(номерСтроки, 8).Value = Выборка.Клиент;
     Лист.Cells(номерСтроки, 17).Value = Выборка.Товар;
     Лист.Cells(номерСтроки, 19).Value = Выборка.Цена;
     номерСтроки = номерСтроки + 1;
   КонецЦикла;
69 ya1snik
 
08.01.13
17:34
Что посоветуете? В консоли запросов данные выбираются, а в экселе пустой лист.
70 hhhh
 
08.01.13
17:45
ВЫБРАТЬ
   ТоварыНаСкладах.Регистратор КАК Документ
   ПОМЕСТИТЬ Документы
   ИЗ
   РегистрНакопления.ТоварыНаСкладах КАК ТоварыНаСкладах
   ГДЕ
   ТоварыНаСкладах.Регистратор.Дата МЕЖДУ &ДатаН И &ДатаК
И          ТоварыНаСкладах.Номенклатура В ИЕРАРХИИ(&Номенклатура)"
   СГРУППИРОВАТЬ ПО
   ТоварыНаСкладах.Регистратор
   ;
   ////////////////////////////////////////////////////////////////////////////////

   ВЫБРАТЬ
   РеализацияТоваровУслугТовары.Ссылка.Дата КАК Дата,
   РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Клиент,
   РеализацияТоваровУслугТовары.Номенклатура КАК Товар,
   ВЫРАЗИТЬ(РеализацияТоваровУслугТовары.Цена/РеализацияТоваровУслугТовары.Коэффициент КАК ЧИСЛО (15,2)) КАК Цена
   ИЗ
  Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
  ГДЕ
   РеализацияТоваровУслугТовары.Ссылка В
           (ВЫБРАТЬ Документы.Документ ИЗ Документы) ";
71 Mafoni
 
08.01.13
17:47
Взял попкорн - услеся поудобней - знимательный сериал!
72 ya1snik
 
08.01.13
17:54
(70) в чем прикол?
73 ya1snik
 
08.01.13
17:59
Может из-за того, что запрос пакетный?
74 Mafoni
 
08.01.13
18:02
(73) можно прочитать детальное описание задачи ? и почему данные выбираются из регистра ?
75 ya1snik
 
08.01.13
18:03
(59)
76 Mafoni
 
08.01.13
18:04
(75) конфа какая ?
77 ya1snik
 
08.01.13
18:05
(76) типовая УТ 10.3
78 Mafoni
 
08.01.13
18:05
(77) по каким регистрам делает движени РТУ ?
79 ya1snik
 
08.01.13
18:08
(78) РТУ - это частный случай. Необходимы все документы касающиеся движения товаров на складе. Поэтому РН ТоварыНаСкладах более предпочтителен.
80 ya1snik
 
08.01.13
18:08
решение в принципе найдено (66) - это пока только для документа РТУ, остальное приписать думаю труда не составит. Проблема в том, что данные в эксель не выгружаются, хотя в консоли все тип-топ.
81 Mafoni
 
08.01.13
18:08
(78) + можеш все не перечислять а только те где есть Номенклатура Количесвто и (Цена Или Сумма) ?
82 Mafoni
 
08.01.13
18:09
(80) извини конечно но тянуть данные из документа а не из регистра это мувитон !!
83 Mafoni
 
08.01.13
18:11
ну и наверное было бы неплохо записать файло екселя после того как данные в него выбросил !!!
84 ya1snik
 
08.01.13
18:12
(82) Такова задача - необходима фактическая цена, т.е. цена из документа, а не цена товара. Они ведь могут различаться.
85 Mafoni
 
08.01.13
18:13
(84) а регистр продажи для кого придумали ?
86 ya1snik
 
08.01.13
18:15
(83) Книга.SaveAs(имяФайла);
(85) См. переписку выше - в этом регистре только продажи, а мне нужны все движения.
87 Mafoni
 
08.01.13
18:18
(86) ошибку какую выдает на SaveAs
(86) религия не позволяет два регистра соединить запросом ?
88 ya1snik
 
08.01.13
18:21
Нашел. У меня в справочнике обнаружена номенклатура с одинаковыми кодами ))). Исправил. Работает. Всем спасибо. На сегодня все )))
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший