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

Автор Тема: Не ведет учет товара по складам. Новичок!!!  (Прочитано 2198 раз)

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

Оффлайн MevMix

  • *
  • Сообщений: 42
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 8.1
Столкнулся с такой проблемой при проведении реализации товаров и услуг.
Конфиг не типовой, а мой.

Вообщем есть приход одного и того же товара, но на разные склады по одной штуке
(к примеру 1 штук на основной и 1 на дополнительный склады)
Если списываю 2 с одного из складов(Дополнительный или Основной) то без проблем проводить.
не ругается, что на складе товара только 1 штука.
Вот ОбработкаПроведения реализации товаров и услуг
Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
СтруктураШапкиДокумента = ОбщегоНазначения.СформироватьСтруктуруШапкиДокумента(ЭтотОбъект);
Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(СтруктураШапкиДокумента);
ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок);


//проверить заполнение табличной части
СтруктураПолей = Новый Структура;
    СтруктураПолей.Вставить("Номенклатура");
    СтруктураПолей.Вставить("Количество");
    ЗаполнениеДокументов.ПроверитьЗаполнениеТабличнойЧасти(ЭтотОбъект, "ПереченьНоменклатуры", СтруктураПолей, Отказ, Заголовок);

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

Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("СписокНоменклатурыДокумента", ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура"));
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("СкладВДокументе", Склад);

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

Пока ВыборкаРезультатаЗапроса.Следующий() Цикл
// Проверить остаток при оперативном проведении.
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
Остаток = ?(ВыборкаРезультатаЗапроса.КоличествоОстаток = Null, 0, ВыборкаРезультатаЗапроса.КоличествоОстаток);
Если Остаток < ВыборкаРезультатаЗапроса.Количество или Остаток = 0 Тогда
Сообщить("Недостаточное количество на склдаде "+Склад+" :"+СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура) + ", в наличии только " + Остаток);
Отказ = Истина;
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;

// Сформировать движения.
Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда

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


КонецЦикла;
   
// Записать движения регистров
   Движения.ОстаткиТоваров.Записать();
   Движения.Продажи.Записать();
КонецЕсли;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры

Повторюсь еще раз НОВИЧОК.
подскажите де трабла
Спасибо
 



Оффлайн MevMix

  • *
  • Сообщений: 42
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 8.1
Сорри за код

дубль два

Процедура ОбработкаПроведения(Отказ, Режим)
//{{__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
// Данный фрагмент построен конструктором.
// При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
СтруктураШапкиДокумента = ОбщегоНазначения.СформироватьСтруктуруШапкиДокумента(ЭтотОбъект);
Заголовок = ОбщегоНазначения.ПредставлениеДокументаПриПроведении(СтруктураШапкиДокумента);
ПроверитьЗаполнениеШапки(СтруктураШапкиДокумента, Отказ, Заголовок);


//проверить заполнение табличной части
СтруктураПолей = Новый Структура;
    СтруктураПолей.Вставить("Номенклатура");
    СтруктураПолей.Вставить("Количество");
    ЗаполнениеДокументов.ПроверитьЗаполнениеТабличнойЧасти(ЭтотОбъект, "ПереченьНоменклатуры", СтруктураПолей, Отказ, Заголовок);

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

Запрос.УстановитьПараметр("МоментВремени", МоментВремени());
Запрос.УстановитьПараметр("СписокНоменклатурыДокумента", ПереченьНоменклатуры.ВыгрузитьКолонку("Номенклатура"));
Запрос.УстановитьПараметр("Ссылка", Ссылка);
Запрос.УстановитьПараметр("СкладВДокументе", Склад);

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

Пока ВыборкаРезультатаЗапроса.Следующий() Цикл
// Проверить остаток при оперативном проведении.
Если Режим = РежимПроведенияДокумента.Оперативный Тогда
Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда
Остаток = ?(ВыборкаРезультатаЗапроса.КоличествоОстаток = Null, 0, ВыборкаРезультатаЗапроса.КоличествоОстаток);
Если Остаток < ВыборкаРезультатаЗапроса.Количество или Остаток = 0 Тогда
Сообщить("Недостаточное количество на склдаде "+Склад+" :"+СокрЛП(ВыборкаРезультатаЗапроса.Номенклатура) + ", в наличии только " + Остаток);
Отказ = Истина;
Возврат;
КонецЕсли;
КонецЕсли;
КонецЕсли;

// Сформировать движения.
Если ВыборкаРезультатаЗапроса.ВидНоменклатуры = Перечисления.ВидыНоменклатуры.Материал Тогда

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


КонецЦикла;
   
// Записать движения регистров
   Движения.ОстаткиТоваров.Записать();
   Движения.Продажи.Записать();
КонецЕсли;
//}}__КОНСТРУКТОР_ДВИЖЕНИЙ_РЕГИСТРОВ
КонецПроцедуры

Оффлайн MevMix

  • *
  • Сообщений: 42
  • РЕПУТАЦИЯ: 0
  • Регистрация: 2011-02-21
  • Сайт: 
  • Профессия: Программист 8.1
Спасибо все заработало


Теги:
 

Выгрузка Бух учет из "Зарплаты и управления персоналом 8" в "1С:Бухгалтерию 8"

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

Ответов: 5
Просмотров: 2424
Последний ответ 10 Ноя 2015, 16:20
от vitasw
УТ 10.3 Цена единицы товара в партии и цена списания этой единицы при реализации не совпадают????????????????????????

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

Ответов: 2
Просмотров: 4872
Последний ответ 31 Янв 2014, 12:22
от i_anton
Общий модуль. Бух. учет. Модуль (26)

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

Ответов: 2
Просмотров: 1594
Последний ответ 05 Авг 2015, 14:41
от Mila24
Не списано 0,0004 кг товара "XXXXX", счет учета 1310, склад Склад материалов

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

Ответов: 2
Просмотров: 4877
Последний ответ 30 Июл 2015, 09:21
от Макси
ПБУ 3/2006 - ПОЛОЖЕНИЕ ПО БУХГАЛТЕРСКОМУ УЧЕТУ "УЧЕТ АКТИВОВ И ОБЯЗАТЕЛЬСТВ, СТОИМОСТЬ КОТОРЫХ ВЫРАЖЕНА В ИНОСТРАННОЙ ВАЛЮТЕ" [ПБУ 3]

Автор MuI_I_IkaРаздел Нормативная база

Ответов: 0
Просмотров: 3277
Последний ответ 08 Июл 2014, 16:09
от MuI_I_Ika

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

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

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


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

* Реклама

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

СМОТРЕТЬ >>

* Поиск

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

* Реклама

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

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

Геннадий ОбьГЭС Геннадий ОбьГЭС
180 Сообщений
ilyay ilyay
69 Сообщений
alex0402
54 Сообщений
oleg-x
48 Сообщений
AIFrame
46 Сообщений
andron81_81
44 Сообщений
MuI_I_Ika MuI_I_Ika
33 Сообщений
Golickoff Golickoff
31 Сообщений
BuhRust
30 Сообщений
Dima Dddd Dima Dddd
26 Сообщений

* Кто онлайн

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

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

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

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

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

Поиск

 
SimplePortal 2.3.5 © 2008-2012, SimplePortal