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

Помогите новичку! Знающему раз плюнуть...

Автор alexx2007, 11 ноя 2010, 14:09

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

alexx2007

Помогите новичку, не могу понять как сделать.

У меня есть внешняя обработка ert.

На определенном этапе мне надо получить дату последнего изменения цены товара.

Товары перебираются так

СпрТМЦ=СоздатьОбъект ("Справочник.Номенклатура");
СпрЦена=СоздатьОбъект ("Справочник.Цены");
РегТовары = СоздатьОбъект("Регистр.ОстаткиТМЦ");

ТекстЗапросаОстатков = "
      |Номенклатура   = Регистр.ОстаткиТМЦ.Номенклатура;
      |Количество      = Регистр.ОстаткиТМЦ.Количество;
      |Функция КоличествоКонОст = КонОст(Количество);
      |Группировка Номенклатура;";

ЗапросПоОстаткам = СоздатьОбъект("Запрос");
Если ЗапросПоОстаткам.Выполнить(ТекстЗапросаОстатков) = 0 Тогда
   Возврат;
КонецЕсли;

Пока ЗапросПоОстаткам.Группировка(1) = 1 Цикл

.....   тут все основное.....

Вот в этом месте надо получить, к примеру в переменную "Дата", дату последнего изменения цены на товар. Ее можно посмотреть в самой 1С в Сведениях о номенклатуре - Справочники - Цены - История, а как тут сделать - ну не программист я.....


КонецЦикла;

Помогите люди добрые. Обработка самописная.

DenPlus

.....   тут все основное.....
Ист = СоздатьОбъект("Исторический");
Ист.ИспользоватьОбъект(<"НапишиИмяПериодическогоРеквизита">, Запрос.Номенклатура);

НужнаяДата = Ист.ДатаЗнач;

Ну как то так. Нет "семерки под рукой", чтобы проверить.

DenPlus

Сорри. СоздатьОбъект("Периодический")

DenPlus

Ист = СоздатьОбъект("Периодический");
Ист.ИспользоватьОбъект("УкажиПериодическийРеквизитНоменклатуры", Запрос.Номенклатура);
//Забыл добавить
Ист.ОбратныйПорядок();
Ист.ВыбратьЗначения();   
Пока  Ист.ПолучитьЗначение() = 1 Цикл
   Прервать;
КонецЦикла;   
      
НужнаяДата = Ист.ДатаЗнач;

alexx2007

Цитата: DenPlus от 11 ноя 2010, 21:40
Ист = СоздатьОбъект("Периодический");
Ист.ИспользоватьОбъект("УкажиПериодическийРеквизитНоменклатуры", Запрос.Номенклатура);
//Забыл добавить
Ист.ОбратныйПорядок();
Ист.ВыбратьЗначения();   
Пока  Ист.ПолучитьЗначение() = 1 Цикл
   Прервать;
КонецЦикла;   
      
НужнаяДата = Ист.ДатаЗнач;

Спасибо за ответ, пятой точкой чую - где-то рядом уже решение :)
Код твой матерится на

Ист.ИспользоватьОбъект("УкажиПериодическийРеквизитНоменклатуры", Запрос.Номенклатура);

пишет: переменная не определена (Запрос)

Я не знаю, че мне тут прописать

Tatitutu

это если следовать этой теме, но можно подругому

Ист = СоздатьОбъект("Периодический");
СпрТМЦ=СоздатьОбъект ("Справочник.Номенклатура");
СпрЦена=СоздатьОбъект ("Справочник.Цены");
РегТовары = СоздатьОбъект("Регистр.ОстаткиТМЦ");

ТекстЗапросаОстатков = "
      |Номенклатура   = Регистр.ОстаткиТМЦ.Номенклатура;
      |Количество      = Регистр.ОстаткиТМЦ.Количество;
      |Функция КоличествоКонОст = КонОст(Количество);
      |Группировка Номенклатура;";

ЗапросПоОстаткам = СоздатьОбъект("Запрос");
Если ЗапросПоОстаткам.Выполнить(ТекстЗапросаОстатков) = 0 Тогда
   Возврат;
КонецЕсли;

Пока ЗапросПоОстаткам.Группировка(1) = 1 Цикл


Ист.ИспользоватьОбъект("УкажиПериодическийРеквизитНоменклатуры", ЗапросПоОстаткам.Номенклатура);
//Забыл добавить
Ист.ОбратныйПорядок();
Ист.ВыбратьЗначения();   
Пока  Ист.ПолучитьЗначение() = 1 Цикл
   Прервать;
КонецЦикла;   
     
НужнаяДата = Ист.ДатаЗнач;

*  MAGAZKA - лучшая программа для розничного магазина (с) *

DenPlus

ЦитироватьКод твой матерится на

Ист.ИспользоватьОбъект("УкажиПериодическийРеквизитНоменклатуры", Запрос.Номенклатура);

пишет: переменная не определена (Запрос)

Я не знаю, че мне тут прописать
Конечно же в данном случае не "Запрос.Номенклатура", а "ЗапросПоОстаткам.Номенклатура"
Ист.ИспользоватьОбъект("УкажиПериодическийРеквизитНоменклатуры", ЗапросПоОстаткам.Номенклатура);

alexx2007

Цитата: DenPlus от 12 ноя 2010, 09:45
ЦитироватьКод твой матерится на

Ист.ИспользоватьОбъект("УкажиПериодическийРеквизитНоменклатуры", Запрос.Номенклатура);

пишет: переменная не определена (Запрос)

Я не знаю, че мне тут прописать
Конечно же в данном случае не "Запрос.Номенклатура", а "ЗапросПоОстаткам.Номенклатура"
Ист.ИспользоватьОбъект("УкажиПериодическийРеквизитНоменклатуры", ЗапросПоОстаткам.Номенклатура);

Спасибо за отклик, это хорошо все, только :) у меня еще вопрос:

УкажиПериодическийРеквизитНоменклатуры - сюда ваще что нужно сунуть, если мне надо дату последнего изменения цены на товар? Может я конечно не правильно как-то выражаюсь?
Парни, вы меня не пинайте, я почти нифига не понимаю в 1С, но сделать некому. Роюсь в инете, но ничего понять по этим реквизитам не могу, все так путано...


Tatitutu

"УкажиПериодическийРеквизитНоменклатуры"  замени на "Цена"
Ист.ИспользоватьОбъект("Цена", ЗапросПоОстаткам.Номенклатура);

*  MAGAZKA - лучшая программа для розничного магазина (с) *

DenPlus

Цитата: Tatitutu от 18 ноя 2010, 15:41
"УкажиПериодическийРеквизитНоменклатуры"  замени на "Цена"
Ист.ИспользоватьОбъект("Цена", ЗапросПоОстаткам.Номенклатура);

Та не. Там другая история оказалась (в личке все порешали). Оказалось, что "Цена" не является периодическим реквизитом справочника Номенклатура, а является периодическим реквизитом справочника Цены, который подчинен справочнику Номенклатура, имеющему в свою очередь, дополнительный реквизит "типЦены" (закупочная, оптовая и т.д.). Типовая ТиС в общем оказалась. :)

Теги:

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

Рейтинг@Mail.ru

Поиск