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

Автор Тема: Установка цен номенклатуры  (Прочитано 3133 раз)

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

Оффлайн SkyNetYar

  • ****
  • Сообщений: 351
  • РЕПУТАЦИЯ: 10
  • КПД: 3%
  • Регистрация: 2014-10-25
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день!
УТ 11.1.10.164
Создаю документ "ввод начальных остатков",заполняю его обработкой "импорт из excel" самописной,документ заполняется нормально,регистрирует остатки нормально,но в обработке еще есть механизм создания документа "установка цен номенклатуры",документ создается,цены заполняются нормально,но движений по этому документу нет!
Цена для документа указывается как розничная(ЦенаПродажи) так и закупочная(Цена)
Что я сделал не так?

&НаСервере
Функция ЗаполнитьНаСервере() Экспорт

// Получение объекта COM, соответствующего файлу
XLSОбъектОсновной = Новый COMОбъект("Excel.Application");
XLSОбъектКниги = XLSОбъектОсновной.WorkBooks;
XLSОбъект = XLSОбъектКниги.Open(ФайлЗагрузки);
Лист = XLSОбъект.Sheets(1);
пСчСтрок = 1; пСчПустых = 0;

мДанные = Новый Массив;

ТЗ = РеквизитФормыВЗначение("Колонки");
Если ТЗ.Найти("ЦенаПродажи") <> Неопределено Тогда
НовУстановкаЦен = Документы.УстановкаЦенНоменклатуры.СоздатьДокумент();
НовУстановкаЦен.Дата = ТекущаяДата();
НовУстановкаЦен.Согласован = Истина;
НовУстановкаЦен.Комментарий = "Создан автоматически на основании "+СсылкаНаДокумент+" пользователем "+Пользователи.ТекущийПользователь()+" по файлу "+ФайлЗагрузки+"";
        НовУстановкаЦен.ДокументОснование = СсылкаНаДокумент;
НовУстановкаЦен.Ответственный = Пользователи.ТекущийПользователь();
СтрокаТЧ = НовУстановкаЦен.ВидыЦен.Добавить();
СтрокаТЧ.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Цена продажи");
СтрокаТЧ = НовУстановкаЦен.ВидыЦен.Добавить();
СтрокаТЧ.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Цена закупки");
КонецЕсли;

Пока пСчПустых < 20 Цикл

мЗначения = Новый Структура;
Для Каждого СтрокаТЗ из Колонки Цикл
Если СтрокаТЗ.Колонка <> 0 Тогда
пИмя = СтрокаТЗ.ИмяРеквизита;
пИмя = ЗаменитьНедопустимыеСимволыВИмениФайла(пИмя, "_");
мЗначения.Вставить(пИмя, Лист.Cells(пСчСтрок,СтрокаТЗ.Колонка).Value);

Если Найти(пИмя, "Штрих") Тогда
мЗначения.Вставить(СтрЗаменить(пИмя, " ", "_"), СтрЗаменить(Лист.Cells(пСчСтрок,СтрокаТЗ.Колонка).Value, " ", ""));
КонецЕсли;
КонецЕсли;
КонецЦикла;

пКоличество = мЗначения.Количество;
Попытка
пКоличество = Число(пКоличество);
Исключение
пКоличество = 0;
КонецПопытки;

Если пКоличество > 0 Тогда
Номенклатура = ПолучитьНоменклатуру(мЗначения, ТипЗнч(СсылкаНаДокумент) <> Тип("ДокументСсылка.ПересчетТоваров"));
Если Номенклатура <> Неопределено Тогда

Если мЗначения.Свойство("Цена") Тогда
пЦена  = мЗначения.Цена;
Попытка
пЦена = Число(пЦена);
Исключение
пЦена = 0;
КонецПопытки;
Иначе
пЦена = 0;
КонецЕсли;

Если пЦена = 0 Тогда
Если мЗначения.Свойство("Сумма") Тогда
пСумма = мЗначения.Сумма;
Попытка
пСумма = Число(пСумма);
Исключение
пСумма = 0;
КонецПопытки;
/////////////
пЦена = ?(пКоличество<>0, пСумма / пКоличество, 0);
Иначе
пСумма = пЦена * пКоличество;
КонецЕсли;
Иначе
пСумма = пЦена * пКоличество;
КонецЕсли;

СтрокаТЧ = Новый Структура;
Если ТипЗнч(СсылкаНаДокумент) = Тип("ДокументСсылка.ПересчетТоваров") Тогда
СтрокаТЧ.Вставить("КоличествоФакт", пКоличество);
СтрокаТЧ.Вставить("КоличествоУпаковокФакт", пКоличество);
Иначе
СтрокаТЧ.Вставить("Номенклатура", Номенклатура);
СтрокаТЧ.Вставить("Артикул", Номенклатура.Артикул);
СтрокаТЧ.Вставить("Количество", пКоличество);
СтрокаТЧ.Вставить("КоличествоУпаковок", пКоличество);
СтрокаТЧ.Вставить("Цена", пЦена);
СтрокаТЧ.Вставить("Сумма", пСумма);
СтрокаТЧ.Вставить("СуммаВзаиморасчетов", пСумма);
СтрокаТЧ.Вставить("СтавкаНДС", Перечисления.СтавкиНДС.БезНДС);
КонецЕсли;

мДанные.Добавить(СтрокаТЧ);

//+Цены
    //Добовляем цену продажи в установку цен номенклатуры
    Если мЗначения.Свойство("ЦенаПродажи") Тогда
СтрокаТЧ = НовУстановкаЦен.Товары.Добавить();
СтрокаТЧ.Номенклатура = Номенклатура;
СтрокаТЧ.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Цена продажи");
СтрокаТЧ.Цена = мЗначения.ЦенаПродажи;
СтрокаТЧ.ЦенаИзмененаВручную = Истина;
//Добовляем цену закупки в установку цен номенклатуры
СтрокаТЧ = НовУстановкаЦен.Товары.Добавить();
СтрокаТЧ.Номенклатура = Номенклатура;
СтрокаТЧ.ВидЦены = Справочники.ВидыЦен.НайтиПоНаименованию("Цена закупки");
СтрокаТЧ.Цена = мЗначения.Цена;
СтрокаТЧ.ЦенаИзмененаВручную = Истина;
КонецЕсли;
//-Цены

КонецЕсли;
Иначе
пСчПустых = пСчПустых + 1;
КонецЕсли;
пСчСтрок = пСчСтрок + 1;
КонецЦикла;

Попытка
НовУстановкаЦен.Записать(РежимЗаписиДокумента.Проведение);
Исключение
Сообщить(ОписаниеОшибки());
Возврат Неопределено;
КонецПопытки;

/////////////////////////
XLSОбъектОсновной.Quit();

Возврат мДанные;

КонецФункции


Онлайн Kironten

  • *****
  • Сообщений: 900
  • РЕПУТАЦИЯ: 185
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
А если вручную провести созданный документ, движения появляются?

Оффлайн SkyNetYar

  • ****
  • Сообщений: 351
  • РЕПУТАЦИЯ: 10
  • КПД: 3%
  • Регистрация: 2014-10-25
  • Сайт: 
  • Профессия: Ученик 1С
А если вручную провести созданный документ, движения появляются?
Нет,в том то и дело что нет,цены стоят,но движений документ не делает,обработка создает номенклатуру,и вид товара прописывает,и характеристики,читал что в этом бывает дело,но не в этом случае..
Еще такая особенность,если скопировать строки документа и вставить в новую установку цен,цены не встают..
Если создаю установку цен из прайс-листа,то цены нормально записываются...

Онлайн Kironten

  • *****
  • Сообщений: 900
  • РЕПУТАЦИЯ: 185
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Ставим точку в ОбработкаПроведения созданного документа и пытаемся провести вручную. Смотрим где наступает отказ и почему.
Скорее всего, что-то недозаполнено. Иначе при ручном проведении, если бы у документа хватало бы необходимых ему данных были бы сформированы движения.

Оффлайн дфтын

  • Могу решить ЛЮБУЮ задачу в 1С и не только.. С вопросами в личку:)
  • *****
  • Сообщений: 2720
  • РЕПУТАЦИЯ: 325
  • КПД: 12%
  • 1С наше все
  • Регистрация: 2014-04-29
    • Skype: Soprov1C
  • Компания: Корпорация зонтиков
  • Профессия: Разработчик 1С
да типы цен не заполнены.
программно - там две табличных части. разберитесь с нимим
Помог? Нажми - Спасибо :)
skype: Soprov1C

Оффлайн SkyNetYar

  • ****
  • Сообщений: 351
  • РЕПУТАЦИЯ: 10
  • КПД: 3%
  • Регистрация: 2014-10-25
  • Сайт: 
  • Профессия: Ученик 1С
Подсказали бы еще как его поправить,вижу что дело не ладно с этим заполнением,но что то не хватает навыка его поправить :(
Добавлено: 16 Июл 2015, 13:17

Оказалось все до опупения просто,не хватало этого:
НовУстановкаЦен.Статус = Перечисления.СтатусыУстановокЦенНоменклатуры.Согласован;

Когда составлял ,почему то спутал с НовУстановкаЦен.Согласован = Истина;
Добавлено: 16 Июл 2015, 13:22

Кстате вопрос по теме..,какую нужно ставить дату документу установка цен номенклатуры по отношению к документу основанию?
И документ основание в установке цен номенклатуры все равно не встает :mellow:

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

Онлайн Kironten

  • *****
  • Сообщений: 900
  • РЕПУТАЦИЯ: 185
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Кстате вопрос по теме..,какую нужно ставить дату документу установка цен номенклатуры по отношению к документу основанию?
И документ основание в установке цен номенклатуры все равно не встает :mellow:
По поводу даты:
Не уверен, но по-моему пофиг какую.
Важно же только какой датой она попадет в регистр, а это дата установки цен.
По основанию:
Проверьте, в этой строке, у вас переменная заполняется?
НовУстановкаЦен.ДокументОснование = СсылкаНаДокумент;
Если заполняется, то скорее всего напутали с типом документа основания

Оффлайн SkyNetYar

  • ****
  • Сообщений: 351
  • РЕПУТАЦИЯ: 10
  • КПД: 3%
  • Регистрация: 2014-10-25
  • Сайт: 
  • Профессия: Ученик 1С
Кстате вопрос по теме..,какую нужно ставить дату документу установка цен номенклатуры по отношению к документу основанию?
И документ основание в установке цен номенклатуры все равно не встает :mellow:
По поводу даты:
Не уверен, но по-моему пофиг какую.
Важно же только какой датой она попадет в регистр, а это дата установки цен.
По основанию:
Проверьте, в этой строке, у вас переменная заполняется?
НовУстановкаЦен.ДокументОснование = СсылкаНаДокумент;
Если заполняется, то скорее всего напутали с типом документа основания
Кажется что пофиг,но насамом деле это влияет например на заполнение ТОРГ-29,если установка цен была раньше приходуемого товара,то в отчет ТОРГ-29 заносится не документ приходывания а документ установки цен номенклатуры,что не правильно!
Документ основания сейчас ковыряю.
Кстате,когда делал в один день установку цен номенклатуры с такими параметрами НачалоДня(ТекущаяДата()); тогда время 00.00.00 и ошибка записи в регистр,поэтому приходится делать ТекущаяДата()

Онлайн Kironten

  • *****
  • Сообщений: 900
  • РЕПУТАЦИЯ: 185
  • КПД: 21%
  • Регистрация: 2013-08-12
  • Сайт: 
  • Профессия: Ученик 1С
Кажется что пофиг,но насамом деле это влияет например на заполнение ТОРГ-29,если установка цен была раньше приходуемого товара,то в отчет ТОРГ-29 заносится не документ приходывания а документ установки цен номенклатуры,что не правильно!
Документ основания сейчас ковыряю.
Кстате,когда делал в один день установку цен номенклатуры с такими параметрами НачалоДня(ТекущаяДата()); тогда время 00.00.00 и ошибка записи в регистр,поэтому приходится делать ТекущаяДата()
Спорное утверждение, что неправильно.
 Вы же можете делать установку цен без документа основания и Торг29 не считает это ошибочным. Возможно это не устраивает Вас, но с точки зрения программы, регистратор есть регистратор.
Поскольку периодичность регистра Цены номенклатуры - секунда, я бы посмотрел, что там уже записано на начало дня. Возможно у Вас задвоение по сочетанию измерений на эту дату.

Оффлайн SkyNetYar

  • ****
  • Сообщений: 351
  • РЕПУТАЦИЯ: 10
  • КПД: 3%
  • Регистрация: 2014-10-25
  • Сайт: 
  • Профессия: Ученик 1С
Да,возможно Вы правы касаемо ТОРГ-29 и установки,наш бухгалтер не понимает такого документа "установка цен номенклатуры" :xfbnsdfb:
А с регистром, да, так как я вношу сразу 3-и документа с остатками на разные склада,то соответственно "УЦН" с таким параметром НачалоДня тоже упирается в такую же запись,которая уже существует с такой секундой,поэтому и приходится делать ТекущаяДата что бы время различалось у записей.
В этих документах попадается одна и та же номенклатура с той же ценой разумеется.только склад разный.принципе это не проблема.Просто хотелось узнать как правильно устанавливать дату у УЦН по отношению к документу прихода,поскольку номенклатуры не существует до документа "ввод остатков товара" то цена записывается не верно если с параметром НачалоДня так я понимаю..


Теги:
 


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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
163 Сообщений
ilyay ilyay
75 Сообщений
oleg-x
56 Сообщений
alex0402
46 Сообщений
andron81_81
44 Сообщений
AIFrame
35 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
28 Сообщений
BuhRust
27 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal