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

Автор Тема: перенос номенклатуры из 1С Аптека в УПП  (Прочитано 6099 раз)

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

Оффлайн bannov

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
1С 8 УПП

Написал обработку, которая переносит номенклатуры, через com-соединение из 1С Аптека в УПП. Нужно переносить не все номенклатуры, а только те которые используются в аптеке, поэтому выгрузка идёт не из справочника "Номенклатура", а из регистра накопления "Остатки товаров компании". Проблема заключается в том, что нужно перенести поле "Ставка НДС", в УПП они хранятся в перечислениях "Ставки НДС", а в 1С Аптека - в справочнике "Ставки НДС", не могку понять как это сделать. Привожу пример кода, который уже написан, осталось решить только эту проблемму. Помогите пожалуйста.

Процедура КнопкаВыполнитьНажатие(Кнопка) 
Если НЕ Соединение() Тогда
Возврат;
КонецЕсли;
Если Не ЗначениеЗаполнено(ДатаКон) Тогда
Сообщить("Заполните поле конечная дата!");
Возврат;
КонецЕсли;
Если ДатаКон < ДатаНач Тогда
Сообщить("Конечная дата меньше начальной!");
Возврат;
КонецЕсли;

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




Если РезультатА.Пустой() Тогда
Возврат;
КонецЕсли;

Запрос=Новый Запрос();
ТекстЗапроса="ВЫБРАТЬ
| ЗначенияСвойствОбъектов.Объект
|ИЗ
| РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
|ГДЕ
| ЗначенияСвойствОбъектов.Свойство.Наименование = &Наименование
| И ЗначенияСвойствОбъектов.Значение = &Значение
| И ЗначенияСвойствОбъектов.Объект ССЫЛКА Справочник.Номенклатура";
Запрос.Текст=ТекстЗапроса;
Запрос.УстановитьПараметр("Наименование", "ObjectUA");
Свойство_ObjectUA=ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("ЦБД00000011");

ТекстЗапроса="ВЫБРАТЬ
| ЕдиницыИзмерения.Ссылка КАК ЕдиницаИзмерения
|ИЗ
| Справочник.ЕдиницыИзмерения КАК ЕдиницыИзмерения
|ГДЕ
| ЕдиницыИзмерения.Владелец = &Владелец";
ЗапросА_ЕИ=м_Соединение.NewObject("Запрос");
ЗапросА_ЕИ.Текст=ТекстЗапроса;


ВыборкаА=РезультатА.Выбрать();
Пока ВыборкаА.Следующий() Цикл
НоменклатураА=ВыборкаА.Номенклатура;
ObjectUA=м_Соединение.String(НоменклатураА.УникальныйИдентификатор());
Запрос.УстановитьПараметр("Значение", ObjectUA);
Если НЕ Запрос.Выполнить().Пустой() Тогда
Продолжить;
КонецЕсли;

НоваяНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
НоваяНоменклатура.Наименование = НоменклатураА.Наименование;
НоваяНоменклатура.Артикул = НоменклатураА.Артикул;
НоваяНоменклатура.Родитель = Родитель;
НоваяНоменклатура.НоменклатурнаяГруппа = НоменклатурнаяГруппа;
НоваяНоменклатура.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(НоменклатураА.БазоваяЕдиницаИзмерения.Код);
НоваяНоменклатура.НаименованиеПолное= НоменклатураА.НаименованиеПолное;
НоваяНоменклатура.ВидНоменклатуры = видНом;
НоваяНоменклатура.Записать();

Запись=РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
Запись.Объект=НоваяНоменклатура.Ссылка;
Запись.Свойство=Свойство_ObjectUA;
Запись.Значение=ObjectUA;
Запись.Записать();

ОснЕИ=Неопределено;
ЗапросА_ЕИ.УстановитьПараметр("Владелец", НоменклатураА);
РезультатА_ЕИ=ЗапросА_ЕИ.Выполнить();
Если НЕ РезультатА_ЕИ.Пустой() Тогда
ВыборкаА_ЕИ=РезультатА_ЕИ.Выбрать();  
Пока ВыборкаА_ЕИ.Следующий() Цикл
ЕдИзмА_ЕИ = ВыборкаА_ЕИ.ЕдиницаИзмерения;
НоваяЕдИзм = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
НоваяЕдИзм.Владелец=НоваяНоменклатура.Ссылка;
НоваяЕдИзм.Наименование=ЕдИзмА_ЕИ.Наименование;
НоваяЕдИзм.ЕдиницаПоКлассификатору=Справочники.КлассификаторЕдиницИзмерения.НайтиПоКоду(ЕдИзмА_ЕИ.ЕдиницаПоКлассификатору.Код);
НоваяЕдИзм.Коэффициент=ЕдИзмА_ЕИ.Коэффициент;
НоваяЕдИзм.Вес=ЕдИзмА_ЕИ.Вес;
НоваяЕдИзм.Записать();
Если НоменклатураА.ОсновнаяЕдиницаИзмерения.Код=ЕдИзмА_ЕИ.Код Тогда
ОснЕИ=НоваяЕдИзм.Ссылка;
КонецЕсли;
КонецЦикла;
КонецЕсли;

Если ОснЕИ<>Неопределено Тогда
НоваяНоменклатура.ЕдиницаХраненияОстатков=ОснЕИ;
НоваяНоменклатура.ЕдиницаДляОтчетов=ОснЕИ;
НоваяНоменклатура.ЕдиницаИзмеренияМест=ОснЕИ;
НоваяНоменклатура.Записать();
КонецЕсли;

///////////////////////
Прервать; //ОТЛАДКА
КонецЦикла;

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



Оффлайн Myti

  • *****
  • Сообщений: 679
  • РЕПУТАЦИЯ: 79
  • КПД: 12%
  • Любые работы по автоматизации вашего бизнеса!!!
  • Регистрация: 2009-10-12
  • Компания: Infostart.ru
  • Профессия: Программист 1С
судя по описанию,ставки в справочнике должны быть одеентичны по наименованию,,,,ищи по нему,,,,
либо коды забей жестко....

Оффлайн bannov

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
Идентичны тем, которые в УПП?

Оффлайн bannov

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
Честно говоря, даже не представляю как это сделать, если можно напишите код пожалуйста!

Оффлайн Myti

  • *****
  • Сообщений: 679
  • РЕПУТАЦИЯ: 79
  • КПД: 12%
  • Любые работы по автоматизации вашего бизнеса!!!
  • Регистрация: 2009-10-12
  • Компания: Infostart.ru
  • Профессия: Программист 1С
Ну вот как так? такой запрос написать и не знать как искать элемент по наименованию!!!

Оффлайн bannov

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
Дописал ещё вот что, но всё равно не получается.

	ТекстЗапроса="ВЫБРАТЬ
| СтавкиНДС.Наименование КАК СтавкаНДС
|ИЗ
| Справочник.СтавкиНДС КАК СтавкиНДС";
ЗапросА_СтавкаНДС=м_Соединение.NewObject("Запрос");
ЗапросА_СтавкаНДС.Текст=ТекстЗапроса;


РезультатА_СтавкаНДС=ЗапросА_СтавкаНДС.Выполнить();
        Если НЕ РезультатА_СтавкаНДС.Пустой() Тогда
ВыборкаА_СтавкаНДС=РезультатА_СтавкаНДС.Выбрать();
Пока ВыборкаА_СтавкаНДС.Следующий() Цикл
СтавкаНДС = ВыборкаА_СтавкаНДС.СтавкаНДС;
Если СтавкаНДС = "НДС 0%" Тогда
Сообщить("Ставка НДС = 0");
НоваяНоменклатура.СтавкаНДС = Перечисления.СтавкиНДС.НДС0;
Иначе
Сообщить("Без НДС");
НоваяНоменклатура.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС;
КонецЕсли;
КонецЦикла;
КонецЕсли;


Оффлайн Myti

  • *****
  • Сообщений: 679
  • РЕПУТАЦИЯ: 79
  • КПД: 12%
  • Любые работы по автоматизации вашего бизнеса!!!
  • Регистрация: 2009-10-12
  • Компания: Infostart.ru
  • Профессия: Программист 1С
дя...усе,правильно,,,а запрос не пустой???? com соединение разве поддерживает запросы к справочникам?

Оффлайн bannov

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
Да, потдерживает. До этого делал запрос к справочнику Единицы измерения

Оффлайн Myti

  • *****
  • Сообщений: 679
  • РЕПУТАЦИЯ: 79
  • КПД: 12%
  • Любые работы по автоматизации вашего бизнеса!!!
  • Регистрация: 2009-10-12
  • Компания: Infostart.ru
  • Профессия: Программист 1С
а сообщает ??? из кода
Если СтавкаНДС = "НДС 0%" Тогда
               Сообщить("Ставка НДС = 0");

Оффлайн bannov

  • *
  • Сообщений: 13
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2010-03-16
  • Сайт: 
Сообщает, но не подставляет


Теги:
 

Перенос товаров из д-та "Поступление Т и У" в "Отчет о розничных продажах"

Автор Игорь ПолищукРаздел Пользователям "1С - Предприятие 8"

Ответов: 3
Просмотров: 5171
Последний ответ 01 Июн 2011, 16:31
от Eugeneer
"фильтрация" номенклатуры

Автор mashencev_antonРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 12
Просмотров: 7998
Последний ответ 11 Мар 2014, 16:09
от mashencev_anton
Номенклатуры типов "расход" и "услуга. Как использовать?

Автор joyerРаздел Пользователям "1С - Предприятие 8"

Ответов: 0
Просмотров: 2686
Последний ответ 29 Июн 2011, 21:11
от joyer
Перенос данных из 1с 82 БП (базовая) в 1с 82 БГУ (базовая)

Автор Владимир87Раздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 4
Просмотров: 7465
Последний ответ 06 Дек 2014, 17:40
от дфтын
КД, Перенос Реквизита справочника (7.7) в ТЧ справочника 8.2.

Автор EvgenyРаздел Конфигурирование, программирование в "1С - Предприятие 8"

Ответов: 2
Просмотров: 3671
Последний ответ 17 Сен 2014, 13:39
от Kironten

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

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

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


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

* Реклама

Смотрите бесплатно более 300 видеоуроков по работе в 1С:Бухгалтерия 8 и 1C:ЗУП 8 ред. 3.0

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
140 Сообщений
AIFrame
70 Сообщений
ilyay ilyay
65 Сообщений
alex0402
52 Сообщений
andron81_81
44 Сообщений
oleg-x
41 Сообщений
MuI_I_Ika MuI_I_Ika
31 Сообщений
BuhRust
31 Сообщений
Golickoff Golickoff
27 Сообщений
alexandr_ll
23 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal