|
оприходование | ☑ | ||
---|---|---|---|---|
0
Mt111
18.07.14
✎
16:28
|
7.7 сетевая ТИС на дбф
есть документ в шапке есть поля "Склад", "ТМЦ", "количество", "ЕдиницаТМЦ", "Фирма" и есть табличная часть формы.нужно списать ТМЦ то которое выбрано в шапке, а списывается с табличной части код: Процедура глИзменитьОстатки(Конт, спФирмы, Склад, ФлагВозврата, ФлагПрихода, ФлагУчетаОстатков=0, ФлагПеремещения=2, УчитыватьРезерв=0, Счет="") Экспорт ВремРегистры=СоздатьОбъект("Регистры"); Если (ФлагПрихода = 0) или (ФлагУчетаОстатков = 1) Тогда // будем использовать остатки, рассчитаем итоги спТовары = СоздатьОбъект("СписокЗначений"); Конт.ВыгрузитьТабличнуюЧасть(спТовары,"Товар"); РегОстатки=ВремРегистры.ОстаткиТоваров; РегОстатки.УстановитьЗначениеФильтра("Фирма",спФирмы,2); РегОстатки.УстановитьЗначениеФильтра("Товар",спТовары,2); РегОстатки.УстановитьЗначениеФильтра("Склад",Склад,1); Если УчитыватьРезерв=1 Тогда РегРезерв=ВремРегистры.РезервыТоваров; РегРезерв.УстановитьЗначениеФильтра("Товар",спТовары,2); Если Конт.ИтогиАктуальны()=0 Тогда РегРезерв.ВременныйРасчет(1); КонецЕсли; КонецЕсли; Если Конт.ИтогиАктуальны()=0 Тогда РегОстатки.ВременныйРасчет(1); ВремРегистры.РассчитатьРегистрыНа(Конт.ТекущийДокумент()); КонецЕсли; КонецЕсли; ВремРегистры.Актуальность(1); Для Инд = 1 по спФирмы.РазмерСписка() Цикл текФирма=спФирмы.ПолучитьЗначение(Инд); Конт.ВыбратьСтроки(); Пока Конт.ПолучитьСтроку() = 1 Цикл Товар = Конт.Товар; Если Товар.ВидТовара = Перечисление.ВидыТоваров.Услуга Тогда // услуги по остаткам не проводим Продолжить; КонецЕсли; ОстатокТовара = Конт.Количество * Конт.Коэффициент; Конт.Регистр.ОстаткиТоваров.ПривязыватьСтроку(Конт.НомерСтроки); Если ФлагПрихода = 1 Тогда Конт.Регистр.ОстаткиТоваров.Фирма = текФирма; Конт.Регистр.ОстаткиТоваров.Товар = Товар; Конт.Регистр.ОстаткиТоваров.Склад = Склад; Конт.Регистр.ОстаткиТоваров.ФлагУчета = ФлагПеремещения; Если ФлагВозврата = 0 Тогда Конт.Регистр.ОстаткиТоваров.ОстатокТовара = ОстатокТовара; Конт.Регистр.ОстаткиТоваров.ДвижениеПриходВыполнить(); Иначе Конт.Регистр.ОстаткиТоваров.ОстатокТовара = - ОстатокТовара; Конт.Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить(); КонецЕсли; Иначе // проверка остатка ТекущийОстаток = РегОстатки.Остаток(текФирма,Товар,Склад,"ОстатокТовара"); Текст = ?(ПустоеЗначение(текФирма)=1,"Управленческий учёт.",Шаблон("Фирма [текФирма].")); Если ОстатокТовара > ТекущийОстаток Тогда глТрассировка(Текст + Шаблон("Строка [Конт.НомерСтроки]. На складе [Склад] недостаточно товара [Товар]. | Имеется [ТекущийОстаток], требуется [ОстатокТовара]."),0); Если Константа.РазрешитьОтрицательныеОстаткиТоваров = Нет Тогда глНеПроводить(Конт); ВремРегистры.Актуальность(0); Возврат; КонецЕсли; КонецЕсли; // проверка свободного остатка Если УчитыватьРезерв=1 Тогда Резерв = РегРезерв.СводныйОстаток(Товар,,"РезервТовара"); РезервПоСчету = РегРезерв.Остаток(Товар,Счет,"РезервТовара"); ОстатокВсего = РегОстатки.СводныйОстаток(текФирма,Товар,,"ОстатокТовара"); СвободныйОстаток = Мин(РезервПоСчету, ОстатокВсего) + Макс(0,ОстатокВсего - Резерв); Если ОстатокТовара > СвободныйОстаток Тогда глТрассировка(Текст + Шаблон("Строка [Конт.НомерСтроки]. Недостаточно свободного товара [Товар]. | Свободный остаток [СвободныйОстаток], необходимо [ОстатокТовара]."),0); Если (Константа.РазрешитьПродаватьРезерв = Нет) и (Константа.РазрешитьОтрицательныеОстаткиТоваров = Нет) Тогда глНеПроводить(Конт); ВремРегистры.Актуальность(0); Возврат; КонецЕсли; КонецЕсли; КонецЕсли; Конт.Регистр.ОстаткиТоваров.Фирма = текФирма; Конт.Регистр.ОстаткиТоваров.Товар = Товар; Конт.Регистр.ОстаткиТоваров.Склад = Склад; Конт.Регистр.ОстаткиТоваров.ФлагУчета = ФлагПеремещения; Если ФлагВозврата = 0 Тогда Конт.Регистр.ОстаткиТоваров.ОстатокТовара = ОстатокТовара; Конт.Регистр.ОстаткиТоваров.ДвижениеРасходВыполнить(); Иначе Конт.Регистр.ОстаткиТоваров.ОстатокТовара = - ОстатокТовара; Конт.Регистр.ОстаткиТоваров.ДвижениеПриходВыполнить(); КонецЕсли; КонецЕсли; КонецЦикла; КонецЦикла; ВремРегистры.Актуальность(0); КонецПроцедуры как можно его изменить чтобы работало как нужно |
|||
1
Ёпрст
18.07.14
✎
16:36
|
||||
2
Ёпрст
18.07.14
✎
16:36
|
Если че, нужно заменить выборку строк таб части на реквизиты шапки доков.. Только вот, нахрена ? спрашивается в задачнике..
|
|||
3
Mt111
18.07.14
✎
16:39
|
(2) суть вот в чем, нужно организовать калькуляцию блюд
ТМЦ с шапки нужно Дооприходовать, а с таб.части списать |
|||
4
Ёпрст
18.07.14
✎
16:40
|
(3) делай, разрешаю.
|
|||
5
Ёпрст
18.07.14
✎
16:40
|
хотя, не проще ли, оприходыванием оприходывать, а списанием списать ?
и.. ничего не писать ручонками.. |
|||
6
Mt111
18.07.14
✎
16:42
|
дак... это ...не получается
сначала с табличной части все списывается а потом дооприходывается |
|||
7
Mt111
18.07.14
✎
16:43
|
не непроще
|
|||
8
Mt111
18.07.14
✎
16:52
|
у номнклатуры есть подчиненый справочник(срецептурой)
в шапке выбираешь блюдо а в табючасти появляется все что входит в рецепт |
|||
9
Ёпрст
18.07.14
✎
16:55
|
Ну тогда переписывай модуль дока.
|
|||
10
Ёпрст
18.07.14
✎
16:56
|
ставишь turbomd и вперёд, полчаса и готово
|
|||
11
torgm
21.07.14
✎
07:57
|
(0) А чем комплектация/разукомплектация не угодила???
|
|||
12
mikecool
21.07.14
✎
07:58
|
и при чем здесь ит-новости? ничего нового не увидел
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |