Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
18 апр 2024, 03:35

Сохранение цен

Автор edmynt, 24 июл 2015, 17:28

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

edmynt

Добрый вечер. Ни где не смог найти соответствующие статьи. Есть два документа приход товара, и соответственно возврат. Как лучше реализовать хранение истории цен и автозаполнение последней актуальной ценой? Начал делать, создав регистр сведений, но зашел в тупик, так как автозаполнение из регистров отсутствует. Есть мысль, что последнюю цену записывать в справочник, но есть сомнения, например при перепроведении тогда может быть не актуальная цена.  1с 8.3

vitasw

Цитата: edmynt от 24 июл 2015, 17:28Начал делать, создав регистр сведений
Правильной дорогой идете товарищи.

Цитата: edmynt от 24 июл 2015, 17:28так как автозаполнение из регистров отсутствует
А что это за зверь такой? типа нажал на кнопочку и оно само куда-то подставилось?


edmynt


Цитата: edmynt от 24 июл 2015, 17:28так как автозаполнение из регистров отсутствует
А что это за зверь такой? типа нажал на кнопочку и оно само куда-то подставилось?
[/quote]

Ну всмысле ввод на основании

vitasw

Ну и что что ввод на основании? вод на основании в любом случае прописывать надо.
Запрос - решение всех проблем.

edmynt

Цитата: vitasw от 24 июл 2015, 17:42
Ну и что что ввод на основании? вод на основании в любом случае прописывать надо.
Запрос - решение всех проблем.

Уже иду в этом направлении:


&НаСервере
Процедура ТабличнаяЧасть1НаименованиеПриИзмененииНаСервере()
"ВЫБРАТЬ
| ЦеныОпт.Номенклатура,
| ЦеныОпт.Цена
|ИЗ
| РегистрСведений.ЦеныОпт КАК ЦеныОпт"
КонецПроцедуры



Вот что то получилось...только он скорее всего все записи выберет. А как сделать последнюю актуальную по дате регистратора? В конструкторе есть выбор первой записи, а последней нет

vitasw

Регистр должен быть периодическим + использовать виртуальную таблицу среза последних

edmynt

Цитата: vitasw от 24 июл 2015, 17:52
Регистр должен быть периодическим + использовать виртуальную таблицу среза последних

Вот что получилось:


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

Запрос.УстановитьПараметр("Номенклатура", Номенклатура);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
КонецЦикла;

//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА



И ошибка при компиляции : {Документ.ПриходТовара.Форма.ФормаДокумента.Форма(48,44)}: Переменная не определена (Номенклатура)
   Запрос.УстановитьПараметр("Номенклатура", <<?>>Номенклатура); (Проверка: Сервер)

Добавлено: 24 июл 2015, 19:01


Разобрался,
вот код.работает :


&НаКлиенте
Процедура ТабличнаяЧасть1НаименованиеПриИзменении(Элемент)
Цена = 0;
СтрокаТЧ=Элементы.ТабличнаяЧасть1.ТекущиеДанные;
Номенклатура = СтрокаТЧ.Номенклатура;
ТабличнаяЧасть1НаименованиеПриИзмененииНаСервере(Номенклатура, Цена);
СтрокаТЧ.Цена = Цена;


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

&НаСервере
Процедура ТабличнаяЧасть1НаименованиеПриИзмененииНаСервере(Номенклатура, Цена)
//{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!


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

Запрос.УстановитьПараметр("Номенклатура",Номенклатура);

РезультатЗапроса = Запрос.Выполнить();

ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();

Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
// Вставить обработку выборки ВыборкаДетальныеЗаписи
Цена=ВыборкаДетальныеЗаписи.Цена;
КонецЦикла;

//}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА


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


Добавлено: 24 июл 2015, 19:01


Большое спасибо

Похожие темы (5)

Рейтинг@Mail.ru

Поиск