Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
18 Дек 2017, 00:39
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Конвертация "Установка цен" из УТ 11 в БП 2.0  (Прочитано 1766 раз)

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

Оффлайн roofless

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Stay hungry, stay foolish (с)
  • Регистрация: 2014-06-21
    • Skype: roof-less
  • Компания: РЦ "Капитан"
  • Профессия: Ученик 1С
всем привет

кто-нибудь делал конвертацию док-та "установка цен номенклатуры" из УТ 11 в БП 2.0?
при первом взгляде получается, что конвертироваться должно из одного в несколько док-тов

открыл правила синхронизации УТ-БП, там выдирают из РС ЦеныНоменклатуры. пробовал тем же методом, но столкнулся с ограничениями параметров (там выгрузка идет в зависимости от того, менялась цена или нет)

поделитесь, пожалуйста, хотя бы алгоритмом действий


Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
А зачем вам в БП цены, если вы используете УТ. Ну да ладно. В БП 2.0 цены по моему не в документе устанавливались, а регистром.

Если это так как я помню, то делайте выборку регистра из УТ и пишите его в соответствующий регистр БП.

Оффлайн roofless

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Stay hungry, stay foolish (с)
  • Регистрация: 2014-06-21
    • Skype: roof-less
  • Компания: РЦ "Капитан"
  • Профессия: Ученик 1С
А зачем вам в БП цены, если вы используете УТ. Ну да ладно. В БП 2.0 цены по моему не в документе устанавливались, а регистром.

Если это так как я помню, то делайте выборку регистра из УТ и пишите его в соответствующий регистр БП.

для ведения в БП суммового учета.

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

Запрос.УстановитьПараметр("Период", ДатаНачала);
Запрос.УстановитьПараметр("ВидЦены", РозничныйВидЦены);

дальше обрабатываю результат. должно получиться за каждый период по каждому виду цены по одному документу с тч "номенклатура, цена, валюта"
то есть за 2015.01.01 00.00.00 по виду цен "цена поступления" отдельный док. для другого вида цен - следующий док

обрабатываю результат вот так:

ВыборкаПоПериодам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоПериодам.Следующий() Цикл

СтруктураОбъекта = Новый Структура;
СтруктураОбъекта.Вставить("Ссылка");
СтруктураОбъекта.Вставить("Дата", ВыборкаПоПериодам.Период);

//ВыборкаПоВидамЦен = ВыборкаПоПериодам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

ВыборкаПоВидамЦен = ВыборкаПоПериодам.Выбрать();

ВыборкаПоВидамЦен.Количество();

Пока ВыборкаПоВидамЦен.Следующий() Цикл

СтруктураОбъекта.Вставить("ТипЦен", ВыборкаПоВидамЦен.ВидЦены);

Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Номенклатура");
Товары.Колонки.Добавить("Цена");
Товары.Колонки.Добавить("Валюта");

//ВыборкаДетали = ВыборкаПоВидамЦен.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаДетали = ВыборкаПоВидамЦен.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
Если ЗначениеЗаполнено(ВыборкаДетали.Номенклатура) Тогда
ЗаполнитьЗначенияСвойств(Товары.Добавить(), ВыборкаДетали);
КонецЕсли;
КонецЦикла;

СтруктураОбъекта.Вставить("Товары", Товары);
СтруктураОбъекта.Вставить("ПометкаУдаления", Товары.Количество() = 0);
СтруктураОбъекта.Вставить("Проведен", НЕ Товары.Количество() = 0);
// Выгрузка документа
//ВыгрузитьПоПравилу(СтруктураОбъекта,,,, "УстановкаЦенНоменклатуры");

КонецЦикла;
КонецЦикла;

и в итоге у меня ВыборкаДетали всегда пустая. что не так делаю?(
Добавлено: 16 Июл 2015, 11:24

скрин выполнения запроса в консоли

Последний раз редактировалось: roofless; 16 Июл 2015, 11:24. Причина: Объединение сообщений

Оффлайн MuI_I_Ika

  • Гончаров Михаил
  • Администратор
  • *****
  • Сообщений: 6558
  • РЕПУТАЦИЯ: 775
  • КПД: 12%
  • Регистрация: 2012-08-15
    • Skype: MuI_I_Ika
  • Сайт: 
  • Профессия: Программист 1С
Возможно вот с этим что-то не так.

ЦеныНоменклатуры.Период > &Период

Вы выбираете цены где период больше некой даты. Надеюсь это не текущая дата.

ВыборкаПоВидамЦен = ВыборкаПоПериодам.Выбрать();

Здесь нужно выбирать по группировкам.


Оффлайн roofless

  • *
  • Сообщений: 22
  • РЕПУТАЦИЯ: 0
  • Stay hungry, stay foolish (с)
  • Регистрация: 2014-06-21
    • Skype: roof-less
  • Компания: РЦ "Капитан"
  • Профессия: Ученик 1С
сам разобрался

для следующих поколений оставляю код для ПВД послеобработки

Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ВидыЦен.Ссылка
|ИЗ
| Справочник.ВидыЦен КАК ВидыЦен
|ГДЕ
| ВидыЦен.ПометкаУдаления = Ложь
| И ВидыЦен.ИспользоватьПриПродаже = Истина";

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

ВидыЦен = Результат.Выгрузить();

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

Запрос.УстановитьПараметр("Период", Параметры.ДатыИзмененияЦен);
Запрос.УстановитьПараметр("ВидЦены", ВидыЦен);


ВыборкаПоПериодам = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Пока ВыборкаПоПериодам.Следующий() Цикл

СтруктураОбъекта = Новый Структура;
СтруктураОбъекта.Вставить("Ссылка");
СтруктураОбъекта.Вставить("Дата", ВыборкаПоПериодам.Период);

ВыборкаПоВидамЦен = ВыборкаПоПериодам.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);

//ВыборкаПоВидамЦен = ВыборкаПоПериодам.Выбрать();

Пока ВыборкаПоВидамЦен.Следующий() Цикл

СтруктураОбъекта.Вставить("ТипЦен", ВыборкаПоВидамЦен.ВидЦены);

Товары = Новый ТаблицаЗначений;
Товары.Колонки.Добавить("Номенклатура");
Товары.Колонки.Добавить("Цена");
Товары.Колонки.Добавить("Валюта");

//ВыборкаДетали = ВыборкаПоВидамЦен.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
ВыборкаДетали = ВыборкаПоВидамЦен.Выбрать();
Пока ВыборкаДетали.Следующий() Цикл
Если ЗначениеЗаполнено(ВыборкаДетали.Номенклатура) Тогда
ЗаполнитьЗначенияСвойств(Товары.Добавить(), ВыборкаДетали);
КонецЕсли;
КонецЦикла;

СтруктураОбъекта.Вставить("Товары", Товары);
СтруктураОбъекта.Вставить("ПометкаУдаления", Товары.Количество() = 0);
СтруктураОбъекта.Вставить("Проведен", НЕ Товары.Количество() = 0);
// Выгрузка документа
ВыгрузитьПоПравилу(СтруктураОбъекта,,,, "УстановкаЦенНоменклатуры");

КонецЦикла;
КонецЦикла;


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

Геннадий ОбьГЭС Геннадий ОбьГЭС
133 Сообщений
ilyay ilyay
63 Сообщений
AIFrame
61 Сообщений
alex0402
50 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
30 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

  • Точка Гостей: 192
  • Точка Скрытых: 0
  • Точка Пользователей: 6
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal