8.х Остатки и Розничная цена в справочнике Номенклатура

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем FLoYD777, 5 авг 2009.

  1. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    УТ 10.3

    В справочник "Номенклатура" необходимо добавить две колонки - "Остаток" и "Розничная цена"

    вот как реализованно добавление Остатка:
    Код:
    Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
    МассивНоменклатуры = Новый Массив;   
    Соответствие = Новый Соответствие;
    
    Для Каждого Строка из ОформленияСтрок <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span>
    МассивНоменклатуры.Добавить(Строка.ДанныеСтроки.Ссылка);
    Соответствие.Вставить(Строка.ДанныеСтроки.Ссылка, Строка);
    КонецЦикла;
    
    Запрос = Новый Запрос("ВЫБРАТЬ
    |	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
    |	ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Товар
    |ИЗ
    |	РегистрНакопления.ТоварыНаСкладах.Остатки( , Номенклатура В (&МассивТоваров)) 
    |		КАК ТоварыНаСкладахОстатки");
    Запрос.УстановитьПараметр("МассивТоваров", МассивНоменклатуры);
    
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
    Соответствие.Получить(Выборка.Товар.Ссылка).Ячейки.Остаток.Значение = Выборка.Остаток;
    КонецЦикла;
    КонецПроцедуры
    
    
    эт часть работает...
    а стоит изменить код вот так:
    Код:
    Процедура СписокПриПолученииДанных(Элемент, ОформленияСтрок)
    МассивНоменклатуры = Новый Массив;   
    Соответствие = Новый Соответствие;
    
    Для Каждого Строка из ОформленияСтрок <span style='cursor: pointer; color:red' Onclick="window.open('http://www.1c-pro.ru/wiki/index.php/цикл')">Цикл	</span>
    МассивНоменклатуры.Добавить(Строка.ДанныеСтроки.Ссылка);
    Соответствие.Вставить(Строка.ДанныеСтроки.Ссылка, Строка);
    КонецЦикла;
    
    ТипЦенВыб = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду(000000004);
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    |	ТоварыНаСкладахОстатки.КоличествоОстаток КАК Остаток,
    |	ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Товар,
    |	ЦеныНоменклатурыСрезПоследних.Цена
    |ИЗ
    |	РегистрНакопления.ТоварыНаСкладах.Остатки(, Номенклатура В (&МассивТоваров)) КАК ТоварыНаСкладахОстатки
    |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦенВыб) КАК ЦеныНоменклатурыСрезПоследних
    |		ПО ТоварыНаСкладахОстатки.Номенклатура.Ссылка = ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка";
    Запрос.УстановитьПараметр("МассивТоваров", МассивНоменклатуры);
    Запрос.УстановитьПараметр("ТипЦенВыб", ТипЦенВыб);
    Выборка = Запрос.Выполнить().Выбрать();
    
    Пока Выборка.Следующий() Цикл
    Соответствие.Получить(Выборка.Товар.Ссылка).Ячейки.Остаток.Значение = Выборка.Остаток;
    Соответствие.Получить(Выборка.Товар.Ссылка).Ячейки.Цена.Значение = Выборка.Цена;
    КонецЦикла;
    КонецПроцедуры
    
    
    и обе колонки получаются пустыми... подскажите пожста, что я делаю неправильно...
  2. Stack_G
    Offline

    Stack_G Опытный в 1С

    Регистрация:
    10 дек 2007
    Сообщения:
    786
    Симпатии:
    2
    Баллы:
    26
    1. Если цены на выбираемый товар не установлены либо не найлены - то колонки будут пустыми, т.к. внутреннее соединение.
    2. Скорее всего у вас ТипЦенВыб - пустая ссылка.
    Попробуйте переписать:
    Код:
    ТипЦенВыб = Справочники.ТипыЦенНоменклатуры.НайтиПоКоду("000000004");
    
    
    т.е. код - строковое значение
  3. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    так оно и есть) благодарю)
  4. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    так а если мне необходимо, чтобы остатки показывались только когда они есть, а цены показывались на все позиции... то мне нужно делать два запроса?? или как то можно ещё сделать??
  5. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    ПРАВОЕ СОЕДИНЕНИЕ
  6. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    можно немножко по подробней как это сделать:)
  7. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Заменить в тексте запроса слово "ВНУТРЕННЕЕ" на "ПРАВОЕ" :)
  8. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    просто он тогда говорит:
    Код:
    {Справочник.Номенклатура.Форма.ФормаСписка(928)}: Значение не является значением объектного типа (Ссылка)
    Соответствие.Получить(Выборка.Товар.Ссылка).Ячейки.Остаток.Значение = Выборка.Остаток;
    
    
    
  9. ASh
    Offline

    ASh Опытный в 1С

    Регистрация:
    10 сен 2008
    Сообщения:
    568
    Симпатии:
    0
    Баллы:
    26
    Нужно еще
    Код:
    |	ТоварыНаСкладахОстатки.Номенклатура.Ссылка КАК Товар,
    
    на
    Код:
    |	ЦеныНоменклатурыСрезПоследних.Номенклатура.Ссылка КАК Товар,
    
    поменять. А вообще, лучше, по-моему, двумя запросами выбрать, потому что соединение медленнее работать будет.
  10. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    этот способ не работает...
    никакой ошибки не выходит, но и колонки пустые...
  11. TopicStarter Overlay
    FLoYD777
    Offline

    FLoYD777 Опытный в 1С

    Регистрация:
    4 май 2009
    Сообщения:
    118
    Симпатии:
    0
    Баллы:
    26
    реализовал через два запроса, все работает отлично) будут вопросы, спрашивайте)
  12. vaier
    Offline

    vaier

    Регистрация:
    4 фев 2013
    Сообщения:
    1
    Симпатии:
    0
    Баллы:
    1
    Здравствуйте. Являюсь только начинающим в работе с конфигуратором, если это еще возможно, расскажите более подробно, как Вы реализовали подобную вещь в УТ 10.3. Очень нужно. Если не затруднит, ответьте пожалуйста на vaier@yahoo.com

Поделиться этой страницей