|
v7: Помогите с документом | ☑ | ||
---|---|---|---|---|
0
walkman315
02.11.12
✎
11:48
|
Всем привет!)
Ребят подскажите пожалуйста... у меня есть документ в котором есть строки Откуда и Куда. Как сделать так что бы при следующем открытии оно мне показывало предыдущее значение которое я ввела....когда я открываю его он мне показывает пустые строки. http://s017.radikal.ru/i407/1211/f7/8b92d4ea0587.png |
|||
1
GLazNik
02.11.12
✎
11:49
|
(0) сделать их реквизитом документа а не формы
|
|||
2
Ёпрст
02.11.12
✎
11:50
|
(1) это новый документ
|
|||
3
Ёпрст
02.11.12
✎
11:51
|
(0) запоминай эти значения где-то еще..
или в глобальных переменных, или в СохранитьЗначение-ВосстановитьЗначение |
|||
4
raykom
02.11.12
✎
11:51
|
>при следующем открытии оно мне
Того же самого документа ? |
|||
5
Ёпрст
02.11.12
✎
11:52
|
или в константы загони ..или еще как, в файл к, примеру, в реквизиты справочника пользователи..
В общем, развлекайся |
|||
6
Ёпрст
02.11.12
✎
11:53
|
Ну или, ничего не делай, а нажимай F9 в журнале для создания новых документов.
|
|||
7
walkman315
02.11.12
✎
11:53
|
подскажите как это в модуле осуществить, пожалуйста
Перем Инфо, Укр, Ukr; Перем НачальнаяДатаДокумента; Перем СписокДействий; Перем Дт, Кт, МестоХраненияСтароеЗначение, НовоеМестоХраненияСтароеЗначение; // =============================== Процедура УстСчет() Если ТМЦ.Выбран() = 1 Тогда Счет = ТМЦ.Счет; Если (МестоХранения.Тип = Склады) и (МестоХранения.ВидСклада = Розничный) Тогда Если ((СталоСчет = СчетПоКоду("25")) ИЛИ (СталоСчет = СчетПоКоду("26")) ИЛИ (ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Полуфабрикат) ИЛИ (ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Продукция)) Тогда Счет = СчетПоКоду("28.2.2"); Иначе Счет = СчетПоКоду("28.2.1"); Конецесли; КонецЕсли; КонецЕсли; КонецПроцедуры // =============================== Процедура УстСталоСчет() Если Стало.Выбран() = 1 Тогда СталоСчет = Стало.Счет; Если (НовоеМестоХранения.Тип = Склады) и (НовоеМестоХранения.ВидСклада = Розничный) Тогда Если ((Счет = СчетПоКоду("25")) ИЛИ (Счет = СчетПоКоду("26")) ИЛИ (Стало.ВидТМЦ = Перечисление.ВидыТМЦ.Полуфабрикат) ИЛИ (Стало.ВидТМЦ = Перечисление.ВидыТМЦ.Продукция)) Тогда СталоСчет = СчетПоКоду("28.2.2"); Иначе СталоСчет = СчетПоКоду("28.2.1"); КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // ====================================== Процедура ИзмКво() Если ТМЦ.Вид()="ТМЦ" Тогда глВыч_суммы_накл(Контекст); Иначе СуммаУчБезНДС = Кво * ТМЦ.Цена_Прих; КонецЕсли; глУстановитьКвоТары(Контекст); КонецПроцедуры // =============================== Процедура ИзмСтало() Если Стало.Выбран() = 0 Тогда Возврат; КонецЕсли; Если НовоеМестоХранения.Выбран()=0 Тогда Предупреждение("Не заполнено поле Куда!"); Возврат; КонецЕсли; Если Стало.Вид() = "ТМЦ" Тогда Если глПроверкаТовараВДокументе(Контекст,Стало) = Нет Тогда Стало = 0; Возврат; КонецЕсли; КонецЕсли; УстСталоСчет(); КонецПроцедуры // =============================== Процедура ИзмТМЦ() Если ТМЦ.Выбран() = 0 Тогда Возврат; КонецЕсли; Если МестоХранения.Выбран()=0 Тогда Предупреждение("Не заполнено поле Откуда!"); Возврат; КонецЕсли; Если ТМЦ.Вид()="ТМЦ" Тогда Если глПроверкаТовараВДокументе(Контекст,ТМЦ) = Нет Тогда ТМЦ = 0; Возврат; КонецЕсли; Если (НовоеМестоХранения.СуммовойУчет=1) И ((ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Полуфабрикат) ИЛИ (ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Продукция)) Тогда глКомментарий("ТМЦ "+ТМЦ+" нельзя перемещать на розничный склада с признаком ведения суммового учета.",1); ТМЦ = 0; Возврат; КонецЕсли; глПриИзмененииТовара(Контекст); Стало = ?(НовоеМестоХранения.СуммовойУчет = 0, ТМЦ, Константа.ТоварыВАссортименте); ИзмСтало(); Иначе Стало = ТМЦ; СуммаУчБезНДС = Кво * ТМЦ.Цена_Прих; ИзмСтало(); КонецЕсли; УстСчет(); КонецПроцедуры // =============================== Функция УстТоварыВАссортименте(Рекв) Рекв = Константа.ТоварыВАссортименте; Если Рекв.Выбран()=0 Тогда Предупреждение("На складе используется суммовой учет ТМЦ."+РазделительСтрок+ "Не заполнена константа ""Товары в ассортименте""!",1); Возврат 0; КонецЕсли; Возврат 1; КонецФункции // =============================== Процедура ИзмМестоХранения() Если МестоХранения.Выбран() = 0 Тогда Возврат; КонецЕсли; Если (МестоХранения.Тип = Склады) и (МестоХранения.ВидСклада = Розничный) и (МестоХранения.СуммовойУчет = 1) и (НовоеМестоХранения.Тип = Склады) и (НовоеМестоХранения.ВидСклада = Розничный) и (НовоеМестоХранения.СуммовойУчет = 1) Тогда Предупреждение("Нельзя выполнять перемещение с розничного склада с суммовым учетом на розничный склад с суммовым учетом!"); МестоХранения = 0; Возврат; КонецЕсли; Если МестоХранения.Тип = МОЛы Тогда Выдал = МестоХранения.МОЛ; КонецЕсли; Если МестоХранения.ВидСклада <> МестоХраненияСтароеЗначение.ВидСклада Тогда // изменим счета в табличной части Если КоличествоСтрок() > 0 Тогда Если Вопрос("Изменить счет учета в табличной части?","Да+Нет") = "Да" Тогда ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл УстСчет(); КонецЦикла; КонецЕсли; КонецЕсли; КонецЕсли; Если МестоХранения.СуммовойУчет = 1 Тогда // в табличной части установим ТМЦ = ТоварыВАссонртименте ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл УстТоварыВАссортименте(ТМЦ); КонецЦикла; ИначеЕсли НовоеМестоХранения.СуммовойУчет <> 1 Тогда // если выбрано склад без суммового учета и второй склад также без суммового учета, // тогда уберем находящиеся в табличной части ТоварывАссортименте (ТМЦ = Стало) ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл // если до этого в строке уже было не ТоварывАссортименте, так и оставим Если ТМЦ = Константа.ТоварыВАссортименте Тогда ТМЦ = Стало; КонецЕсли; КонецЦикла; КонецЕсли; МестоХраненияСтароеЗначение = МестоХранения; КонецПроцедуры // =============================== // Назначение: обновляет список действий по кнопке "Действия" // // Аргументы: // Процедура ОбновитьСписокДействий() // обновим список действий ТекстСписокДействий = " |ДвиженияДокумента, |СтруктураПодчиненности, |ВводНаОсновании, |ОткрытьВЖурнале, |Подчиненные"; Если (ПустоеЗначение(НовоеМестоХранения) = 0) Тогда Если (НовоеМестоХранения.ВидСклада =Перечисление.ВидыСкладов.Розничный) Тогда ТекстСписокДействий = " |ТоварныйСостав, |ДвиженияДокумента, |ОбновлениеЦен, |СтруктураПодчиненности, |ВводНаОсновании, |ОткрытьВЖурнале, |Подчиненные"; КонецЕсли; КонецЕсли; СписокДействий = глПолучитьСписокДействий(ТекстСписокДействий,Форма.ТолькоПросмотр()); КонецПроцедуры //ОбновитьСписокДействий // =============================== Процедура ИзмНовоеМестоХранения() Если НовоеМестоХранения.Выбран() = 0 Тогда Возврат; КонецЕсли; Если (МестоХранения.Тип = Склады) и (МестоХранения.ВидСклада = Розничный) и (МестоХранения.СуммовойУчет = 1) и (НовоеМестоХранения.Тип = Склады) и (НовоеМестоХранения.ВидСклада = Розничный) и (НовоеМестоХранения.СуммовойУчет = 1) Тогда Предупреждение("Нельзя выполнять перемещение с розничного склада с суммовым учетом на розничный склад с суммовым учетом!",1); НовоеМестоХранения = 0; Возврат; КонецЕсли; Если НовоеМестоХранения.Тип = МОЛы Тогда Получил = НовоеМестоХранения.МОЛ; КонецЕсли; Если НовоеМестоХранения.ВидСклада <> НовоеМестоХраненияСтароеЗначение.ВидСклада Тогда // изменим счета в табличной части Если КоличествоСтрок() > 0 Тогда ИзменятьСчета = Вопрос("Изменить счет учета в табличной части?","Да+Нет"); ИзменятьЦены = Вопрос("Изменить цены в табличной части?","Да+Нет"); ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл Если ИзменятьСчета = "Да" Тогда УстСталоСчет(); КонецЕсли; Если ИзменятьЦены = "Да" Тогда глПриИзмененииТовара(Контекст); КонецЕсли; КонецЦикла; КонецЕсли; КонецЕсли; Если НовоеМестоХранения.СуммовойУчет = 1 Тогда // в табличной части установим Стало = ТоварыВАссонртименте ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл УстТоварыВАссортименте(Стало); КонецЦикла; ИначеЕсли МестоХранения.СуммовойУчет <> 1 Тогда // если выбрано склад без суммового учета и второй склад также без суммового учета, // тогда уберем находящиеся в табличной части ТоварывАссортименте (Стало = ТМЦ) ВыбратьСтроки(); Пока ПолучитьСтроку() = 1 Цикл // если до этого в строке уже было не ТоварывАссортименте, так и оставим Если Стало = Константа.ТоварыВАссортименте Тогда Стало = ТМЦ; КонецЕсли; КонецЦикла; КонецЕсли; ОбновитьСписокДействий(); НовоеМестоХраненияСтароеЗначение = НовоеМестоХранения; КонецПроцедуры // =============================== Процедура УстИнфо() Инфо = ""; Если (МестоХранения.Выбран()=1) и (НовоеМестоХранения.Выбран()=1) Тогда Если (МестоХранения.Тип = Склады) и (НовоеМестоХранения.Тип = Склады) Тогда Инфо = "Перемещаем "; Если МестоХранения.ВидСклада = Оптовый Тогда Инфо = Инфо+"с оптового склада "; ИначеЕсли МестоХранения.СуммовойУчет=1 Тогда Инфо = Инфо + "из розницы с суммовым учетом "; Иначе Инфо = Инфо + "из розницы "; КонецЕсли; Если НовоеМестоХранения.ВидСклада = Оптовый Тогда Инфо = Инфо+"на оптовый склад"; ИначеЕсли НовоеМестоХранения.СуммовойУчет=1 Тогда Инфо = Инфо + "в розницу с суммовым учетом."; Иначе Инфо = Инфо + "в розницу."; КонецЕсли; КонецЕсли; КонецЕсли; КонецПроцедуры // =============================== Функция УстДоступность() УстИнфо(); Форма.Заголовок(глЗаголовок(Контекст,"Перемещение")); //Если (Модифицированность() = 1) Или (Проведен() = 0) Тогда // Форма.кПечать.Доступность(0); //Иначе Форма.кПечать.Доступность(1); //КонецЕсли; Если (НовоеМестоХранения.ВидСклада = Перечисление.ВидыСкладов.Розничный) Или ((МестоХранения.ВидСклада = Перечисление.ВидыСкладов.Розничный) И (МестоХранения.СуммовойУчет = 1)) Тогда ВидимостьЦенаСНДС = 1; Иначе ВидимостьЦенаСНДС = 0; КонецЕсли; //Если (названиеНабораПрав()="БухМатериалы")или (названиеНабораПрав()="Администратор") тогда // ВидимостьЦенаСНДС=1; //Конецесли; Форма.ЦенаСНДС.Видимость(ВидимостьЦенаСНДС); Форма.СуммаСНДС.Видимость(ВидимостьЦенаСНДС); Если МестоХранения.Тип = Склады Тогда Форма.Выдал.Доступность(1); Форма.ТМЦ.НеИзменятьВид(1); Если МестоХранения.ВидСклада = Розничный Тогда Форма.Счет.Доступность(0); Если МестоХранения.СуммовойУчет=1 Тогда Форма.ТМЦ.Доступность(0); Форма.Предпочтение.Доступность(0); Иначе Форма.ТМЦ.Доступность(1); Форма.Предпочтение.Доступность(1); КонецЕсли; Иначе Форма.ТМЦ.Доступность(1); Форма.Предпочтение.Доступность(1); Форма.Счет.Доступность(1); КонецЕсли; Иначе Форма.Выдал.Доступность(0); Форма.ТМЦ.НеИзменятьВид(0); КонецЕсли; Если (МестоХранения.Тип = Склады) и (МестоХранения.ВидСклада = Розничный) и (МестоХранения.СуммовойУчет = 1) Тогда Форма.СуммаУчБезНДС.Видимость(1); Иначе Форма.СуммаУчБезНДС.Видимость(1); КонецЕсли; Если НовоеМестоХранения.Тип = Склады Тогда Форма.Получил.Доступность(1); Форма.Стало.НеИзменятьВид(1); Если НовоеМестоХранения.ВидСклада = Розничный Тогда Форма.СталоСчет.Доступность(0); Если НовоеМестоХранения.СуммовойУчет=1 Тогда Форма.Стало.Доступность(0); Иначе Форма.Стало.Доступность(1); КонецЕсли; Иначе Форма.Стало.Доступность(1); Форма.СталоСчет.Доступность(1); КонецЕсли; Иначе Форма.Получил.Доступность(0); Форма.Стало.НеИзменятьВид(0); КонецЕсли; Возврат ""; КонецФункции // =============================== Процедура ПриНачалеРедактированияСтроки() Если (МестоХранения.Выбран() = 0) или (НовоеМестоХранения.Выбран() = 0) Тогда Предупреждение("Заполните реквизиты Откуда и Куда!"); СтатусВозврата(0); Возврат; КонецЕсли; Если ПустоеЗначение(Предпочтение)=1 Тогда Форма.Предпочтение.НазначитьТип("Справочник.Контрагенты"); Предпочтение=ПолучитьПустоеЗначение("Справочник.Контрагенты"); КонецЕсли; КонецПроцедуры // =============================== Процедура ПриРедактированииНовойСтроки() ПриНачалеРедактированияСтроки(); Если СтатусВозврата()=1 Тогда Если (МестоХранения.ВидСклада=Розничный) и (МестоХранения.СуммовойУчет=1) Тогда Если УстТоварыВАссортименте(ТМЦ) <> 1 Тогда СтатусВозврата(0); Возврат; КонецЕсли; УстСчет(); КонецЕсли; Если (НовоеМестоХранения.ВидСклада=Розничный) и (НовоеМестоХранения.СуммовойУчет=1) Тогда Если УстТоварыВАссортименте(Стало) <> 1 Тогда СтатусВозврата(0); Возврат; КонецЕсли; УстСталоСчет(); КонецЕсли; КонецЕсли; КонецПроцедуры // =============================== Процедура ОбработкаПодбора(Выб) Если (НовоеМестоХранения.ВидСклада = Розничный) И (НовоеМестоХранения.СуммовойУчет=1) И (МестоХранения.ВидСклада = Розничный) И (МестоХранения.СуммовойУчет=1) Тогда Если ТМЦ <> Константа.ТоварыВАссортименте Тогда глКомментарий("ТМЦ "+ТМЦ+" нельзя перемещать с розничного склада с признаком ведения суммового учета.",1); ТМЦ = 0; Возврат; КонецЕсли; КонецЕсли; Если НовоеМестоХранения.СуммовойУчет=1 Тогда Если ((ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Полуфабрикат) ИЛИ (ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Продукция)) Тогда глКомментарий("ТМЦ "+ТМЦ+" нельзя перемещать на розничный склада с признаком ведения суммового учета.",1); ТМЦ = 0; Возврат; КонецЕсли; КонецЕсли; текНачальнаяСтрока = КоличествоСтрок(); глПриОбработкеПодбора(Выб,Контекст); Для текНомерСтроки = текНачальнаяСтрока По КоличествоСтрок() Цикл ПолучитьСтрокуПоНомеру(текНомерСтроки); ИзмТМЦ(); КонецЦикла; КонецПроцедуры // =============================== Процедура ОбработкаВыбораЗначения(ВыбЗнач,ИдентЭлемДиалога,ФлагСтандОбр) Если ИдентЭлемДиалога = "ДокументОснование" Тогда Если глПроверитьФирму(Контекст,ВыбЗнач) = 0 Тогда ФлагСтандОбр = 0; КонецЕсли; КонецЕсли; КонецПроцедуры // =============================== Процедура ВводНового(Признак) Если Признак = 1 Тогда УстановитьНовыйНомер("ВПМ-"); Возврат; КонецЕсли; фирма=константа.БазФирма; МестоХранения=восстановитьЗначение("НКК_МЕСТОХРАНЕНИЯ"); НовоеМестоХранения=восстановитьЗначение("НКК_МЕСТОХРАНЕНИЯ1"); КонецПроцедуры // =============================== Процедура ПриОткрытии() НачальнаяДатаДокумента = ДатаДок; Форма.кПравоваяПоддержка.Видимость(глВидимостьПравовойПоддержки); глПроверкаДатыДок(Контекст,"Открытие"); ПриЗаписиПерепроводить(1); // Если открыли только на просмотр, то надо кнопки сделать недоступными Если Форма.ТолькоПросмотр()=1 Тогда Форма.кОК.Доступность(0); Форма.кПровести.Доступность(0); Форма.кЗаполнить.Доступность(0); Форма.кПодбор.Доступность(0); Форма.кФирма.Доступность(0); Форма.КнопкаПоУмолчанию("кЗакрыть"); Иначе Форма.КнопкаПоУмолчанию("кОК"); КонецЕсли; Если Константа.ПоказыватьОстаткиТМЦ = Нет Тогда Форма.тОстатокПолный.Видимость(0); Форма.тОстатокПоСкладуОткуда.Видимость(0); Форма.тОстатокПоСкладуКуда.Видимость(0); КонецЕсли; Форма.МестоХранения.ВыполнятьФормулуТолькоПриИзменении(1); Форма.НовоеМестоХранения.ВыполнятьФормулуТолькоПриИзменении(1); МестоХраненияСтароеЗначение = МестоХранения; НовоеМестоХраненияСтароеЗначение = НовоеМестоХранения; глМестоХранения = МестоХранения; УстИнфо(); ОбновитьСписокДействий(); КонецПроцедуры // =============================== Процедура ПриЗаписи() глПроверкаДатыДок(Контекст,"Запись"); Если глКонтрольДатыДокумента(Контекст, НачальнаяДатаДокумента)=1 Тогда СтатусВозврата(0); КонецЕсли; Автор = глПользователь; КонецПроцедуры // =============================== Процедура ВыборПредпочтения() спОтбор = СоздатьОбъект("СписокЗначений"); спСчета=СоздатьОбъект("СписокЗначений"); спСчета.ДобавитьЗначение(Счет); спОтбор.Установить("Счет",спСчета); Если глПартионныйУчетПоСкладам = Да Тогда спОтбор.Установить("МестоХранения",МестоХранения); КонецЕсли; спОтбор.Установить("Контекст",Контекст); ОткрытьФормуМодально("Справочник.Контрагенты.ВыборПредпочтения", спОтбор); КонецПроцедуры // ============================= Процедура РазобратьСуммуПроводки(Опер, СуммаУч, СуммаРозн, Наценка, Дооценка) Перем ФлагВыхода; // если в операции есть сложные проводки, запоминаем счета из предыдущих корреспонденций Если ПустоеЗначение(Опер.Дебет.Счет) = 0 Тогда Дт = Опер.Дебет.Счет; ИначеЕсли Опер.НомерКорреспонденции() = 1 Тогда ФлагВыхода = 1; КонецЕсли; Если ПустоеЗначение(Опер.Кредит.Счет) = 0 Тогда Кт = Опер.Кредит.Счет; ИначеЕсли Опер.НомерКорреспонденции() = 1 Тогда ФлагВыхода = 1; КонецЕсли; Если ФлагВыхода = 1 Тогда Возврат; КонецЕсли; Если (Дт.ПринадлежитГруппе(СчетПоКоду("28.5")) = 1) Или (Кт.ПринадлежитГруппе(СчетПоКоду("28.5")) = 1) Тогда Если Дт = Кт Тогда // "перемещение" наценки Наценка = Наценка + Опер.Сумма; ИначеЕсли Дт.ПринадлежитГруппе(СчетПоКоду("28.5")) = 1 Тогда // дооценка Дооценка = Дооценка - Опер.Сумма; Иначе Дооценка = Дооценка + Опер.Сумма; КонецЕсли; ИначеЕсли (Дт.ПринадлежитГруппе(СчетПоКоду("28.2")) = 1) Или (Кт.ПринадлежитГруппе(СчетПоКоду("28.2")) = 1) Тогда Если Дт = Кт Тогда // "перемещение" продажной стоимости СуммаРозн = СуммаРозн + Опер.Сумма; Иначе // движение по учетной стоимости СуммаУч = СуммаУч + Опер.Сумма; КонецЕсли; ИначеЕсли (Дт = СчетПоКоду("232")) Или (Кт = СчетПоКоду("232")) Тогда // собств. затраты по переработке давальческого сырья не учитываем Иначе // оптовое перемещение СуммаУч = СуммаУч + Опер.Сумма; КонецЕсли; КонецПроцедуры // ============================= Процедура ПолучитьДанныеИзПроводок(СуммаУч, СуммаРозн) Перем Наценка; Наценка = 0; Дооценка = 0; СуммаУч = 0; СуммаРозн = 0; Опер = СоздатьОбъект("Операция"); Опер.НайтиОперацию(ТекущийДокумент()); Опер.ВыбратьПроводки(); Пока Опер.ПолучитьПроводку()=1 Цикл Если (Опер.НомерСтрокиДокумента() = НомерСтроки) Тогда РазобратьСуммуПроводки(Опер, СуммаУч, СуммаРозн, Наценка, Дооценка); КонецЕсли; КонецЦикла; Если (СуммаУч = 0) И (СуммаРозн <> 0) Тогда СуммаУч = СуммаРозн - Наценка; СуммаРозн = СуммаРозн + Дооценка; КонецЕсли; Если (СуммаРозн = 0) И (СуммаУч <> 0) Тогда СуммаРозн = СуммаУч + Дооценка * ?(Дооценка > 0, 1, -1); КонецЕсли; Если (СуммаРозн = 0) И (СуммаУч = 0) Тогда СуммаРозн = Дооценка * ?(Дооценка > 0, 1, -1); КонецЕсли; КонецПроцедуры // ============================= Процедура ПечатьПеремещение(товаровед = 0) Перем СуммаУч, СуммаРозн; глУстПропись(Гривня); // 10.08.2010 Вова // для охраны: чтобы префикс документа был "ВП" ПечНомерДок = НомерДок; //ПечНомерДок = "ВП-"+Прав(ПечНомерДок, 7); // так же изменены (если это можно так назвать) таблицы Опт_Укр и Розница_Укр // 10.08.2010 Вова Таб = СоздатьОбъект("Таблица"); Укр = ?(Константа.ФормыНаУкраинском = Да, "_Укр", ""); Если (МестоХранения.Тип <> МОЛы) И (НовоеМестоХранения.Тип <> МОЛы) И ((МестоХранения.ВидСклада = Розничный) Или (НовоеМестоХранения.ВидСклада = Розничный)) Тогда Таб.ИсходнаяТаблица("Розница"+Укр); Иначе Таб.ИсходнаяТаблица("Опт"+Укр); КонецЕсли; ппТипПеремещения="внутрішнє"; если НовоеМестоХранения.Тип=перечисление.ТипыМестХранения.Внешний тогда ппТипПеремещения="зовнішнє"; конецесли; Таб.ВывестиСекцию("Шапка"); СуммаУчВсего = 0; СуммаРознВсего = 0; КвоВсего = 0; Ном = 0; тб=СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(тб); тб.Свернуть("ТМЦ","кво,,КвоТары,СуммаУчБезНДС"); тб.ВыбратьСтроки(); Пока тб.ПолучитьСтроку()=1 Цикл //Если Проведен() = 1 Тогда // ПолучитьДанныеИзПроводок(СуммаУч, СуммаРозн); //КонецЕсли; СуммаУч= тб.СуммаУчБезНДС; ЦенаУч = ?(тб.Кво = 0, 0, тб.СуммаУчБезНДС / тб.Кво); ЦенаРозн = 0; Если тб.ТМЦ.Вид() = "ТМЦ" Тогда ЕдПоУмолчанию = ТМЦ.БазоваяЕдиница; Иначе ЕдПоУмолчанию = ТМЦ.БазЕдиница; КонецЕсли; Если (тб.Кво - тб.КвоТары*тб.ТМЦ.КвоВТаре) <= 0 Тогда ТараОст = Формат(тб.КвоТары,"Ч05.0"); Иначе ТараОст = Формат(тб.КвоТары,"Ч05.0") + " / " + Формат(тб.Кво - тб.КвоТары*тб.ТМЦ.КвоВТаре,"Ч05.0"); КонецЕсли; Если (тб.ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Тара) ИЛИ (тб.КвоТары = 0) Тогда ТараОст = ""; КонецЕсли; Ном = Ном + 1; Таб.ВывестиСекцию("Строка"); Если Найти(тб.тмц.БазоваяЕдиница.Наименование,"кг")=1 тогда КвоВсего = КвоВсего + тб.Кво; Конецесли; СуммаУчВсего = СуммаУчВсего + СуммаУч; СуммаРознВсего = СуммаРознВсего + СуммаРозн; КонецЦикла; КтоВыдал = глФИО(Выдал,1); КтоПолучил = глФИО(Получил,1); Если товаровед = 0 Тогда Таб.ВывестиСекцию("Дно"); Иначе Таб.ВывестиСекцию("Дно_Товаровед"); КонецЕсли; //Таб.Защита(Константа.ФлагЗащитыТаблиц); Таб.ЭкземпляровНаСтранице(0); Таб.ТолькоПросмотр(1); Таб.Опции(0,0,0,0); Таб.ПараметрыСтраницы(1,100,0,0,0,0,0,0,0,1); Таб.Показать("Перемещение ТМЦ",""); КонецПроцедуры // =============================== Процедура Печать() Перем Выб; записать(); спВыб = СоздатьОбъект("СписокЗначений"); спВыб.ДобавитьЗначение("Накладная (дир. - гл.бух.)"); спВыб.ДобавитьЗначение("Накладная (товаровед)"); Если спВыб.ВыбратьЗначение(Выб,,,,1) = 0 Тогда Возврат; КонецЕсли; Если Выб = "Накладная (дир. - гл.бух.)" Тогда ПечатьПеремещение(); Иначе ПечатьПеремещение(1); КонецЕсли; КонецПроцедуры //Печать // =============================== Процедура ПриНачалеВыбораЗначения(Рекв,СтандОбр) Если Рекв = "Предпочтение" Тогда ВыборПредпочтения(); СтандОбр = 0; ИначеЕсли (Рекв = "СталоСчет") и (Константа.ИспользоватьСписокКорректныхПроводок = Да) И (Счет.Выбран() = 1) Тогда СписокКорректныхПроводок = СоздатьОбъект("СписокЗначений"); СписокКорректныхПроводок.Установить("Счет", Счет); СписокКорректныхПроводок.Установить("Корреспонденция", 0); глЗначениеОтбора = СписокКорректныхПроводок; ИначеЕсли (Рекв="Выдал") или (Рекв="Получил") Тогда КонтФирмы = Фирма; СтандОбр = 0; ОткрытьФорму("Справочник.Сотрудники.ДляВыбора",КонтФирмы); КонецЕсли; КонецПроцедуры // =============================== Процедура ВводНаОсновании(Док) Фирма = Док.Фирма; ДокументОснование = Док; УстановитьНовыйНомер("ВПМ-"); Если Найти(Док.Вид(),"ПриходнаяНакладная") <> 0 Тогда Если Док.Вид() = "ПриходнаяНакладнаяГТД" Тогда // проверим что приходуем Если Док.ЧтоПриходуем = Перечисление.ЧтоПриходуем.ОСиНМАиДрНеобМатАктивы Тогда ДокументОснование = ""; Предупреждение("Нельзя перемещать ОС, НМА, другие необоротные материальные активы!",2); СтатусВозврата(0); Возврат; КонецЕсли; КонецЕсли; // считаем, что перемещаем с оптового склада в розницу МестоХранения = Док.МестоХранения; Если НовоеМестоХранения.Выбран() = 0 Тогда НовоеМестоХранения = Фирма.ОсновнойСклад; КонецЕсли; Если (ПустоеЗначение(Константа.ТоварыВАссортименте)=1) И (Док.МестоХранения.СуммовойУчет=1) Тогда Предупреждение("На складе-получателе используется суммовой учет ТМЦ."+РазделительСтрок+ "Не заполнена константа ""Товары в ассортименте""!",2); СтатусВозврата(0); Возврат; КонецЕсли; Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл Если Док.ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Услуга Тогда Продолжить; КонецЕсли; НоваяСтрока(); ТМЦ = Док.ТМЦ; УстСчет(); Если НовоеМестоХранения.СуммовойУчет=1 Тогда Стало = Константа.ТоварыВАссортименте; Иначе Стало = ТМЦ; КонецЕсли; УстСталоСчет(); Если (НовоеМестоХранения.Тип = Склады) и (НовоеМестоХранения.ВидСклада = Розничный) Тогда глПриИзмененииТовара(Контекст); Иначе Если глЕстьРеквизитМнЧ("ЦенаСНДС", Док.Вид())= Да Тогда ЦенаСНДС = Док.ЦенаСНДС; Иначе ЦенаСНДС = Док.ЦенаБезНДС; КонецЕсли; КонецЕсли; Кво = Док.Кво; глВыч_суммы_накл(Контекст,1); КонецЦикла; Иначе // зеркально отображаем документ, являющийся основанием для заполнения МестоХранения = Док.НовоеМестоХранения; Выдал = Док.Получил; НовоеМестоХранения = Док.МестоХранения; Получил = Док.Выдал; Док.ВыбратьСтроки(); Пока Док.ПолучитьСтроку() = 1 Цикл НоваяСтрока(); ТМЦ = Док.Стало; Счет = Док.СталоСчет; Стало = Док.ТМЦ; СталоСчет = Док.Счет; Кво = Док.Кво; ЦенаСНДС = Док.ЦенаСНДС; СуммаУчБезНДС = Док.СуммаУчБезНДС; СуммаСНДС = Док.СуммаСНДС; КонецЦикла; КонецЕсли; КонецПроцедуры // =============================== Процедура Заполнить(Док=0) // заполнить по приходным документам Перем ВыбЗначение, Таб; Если Док = 0 Тогда Меню = СоздатьОбъект("СписокЗначений"); Меню.ДобавитьЗначение("ПриходнаяНакладнаяГТД","По ГТД"); Меню.ДобавитьЗначение("ПриходнаяНакладнаяЗапасы","По приходным накладным (запасы)"); Меню.ДобавитьЗначение("Перемещение","По документам Перемещение"); Если Меню.ВыбратьЗначение(ВыбЗначение,"",,,1) = 0 Тогда Возврат; КонецЕсли; Док = СоздатьОбъект("Документ."+ВыбЗначение); Если Док.Выбрать("Выберите документ (существущие строки будут удалены):") = 0 Тогда Возврат; КонецЕсли; КонецЕсли; Если КоличествоСтрок() > 0 Тогда Если Вопрос("Удалить существующие строки?","Да+Нет") = "Да" Тогда УдалитьСтроки(); КонецЕсли; КонецЕсли; ВводНаОсновании(Док.ТекущийДокумент()); // поскольку повторения не разрешены... ВыгрузитьТабличнуюЧасть(Таб); Таб.Свернуть("ТМЦ,Предпочтение,Счет,Стало,СталоСчет","Кво"); ЗагрузитьТабличнуюЧасть(Таб); КонецПроцедуры // =============================== Процедура ИзмСуммаУчБезНДС() // При изменении реквизита СуммаУчБезНДС признак модифицированности // устанавливается после прорисовки формы, из-за чего не изменяется // доступность кнопки "Печать" на форме. Для того, чтобы корректно // установился признак модифицорованности документа до прорисовки, // изменим другой реквизит документа, и восстановим его значение. ВременноеКво = Кво; Кво = Кво + 1; Кво = ВременноеКво; КонецПроцедуры //ИзмСуммаУчБезНДС // =============================== Процедура ДобавитьТару() тбТМЦ = СоздатьОбъект("ТаблицаЗначений"); ВыгрузитьТабличнуюЧасть(тбТМЦ); тбТара = СоздатьОбъект("ТаблицаЗначений"); тбТара.НоваяКолонка("ТМЦ","Справочник.ТМЦ"); тбТара.НоваяКолонка("Кво","Число",5,0); тбТМЦ.ВыбратьСтроки(); Пока тбТМЦ.ПолучитьСтроку() = 1 Цикл Если тбТМЦ.ТМЦ.ВидТМЦ = Перечисление.ВидыТМЦ.Тара Тогда Продолжить; КонецЕсли; Если тбТМЦ.ТМЦ.Тара.Выбран() = 1 Тогда тбТара.НоваяСтрока(); |
|||
8
walkman315
02.11.12
✎
11:55
|
В процедуре вводнового там признак
если признакКопирования сделать поможет? |
|||
9
viktor_vv
02.11.12
✎
11:55
|
(7) Надо еще глобальник вывалить сюда :), без него не взлетит.
|
|||
10
ЧеловекДуши
02.11.12
✎
11:55
|
Позвать специалиста, он все сможет :)
|
|||
11
ЧеловекДуши
02.11.12
✎
11:56
|
(7) Ты кто по образованию?
Это что бы лишних вопросов не было ;) |
|||
12
Ёпрст
02.11.12
✎
11:57
|
(7)
Процедура ПриЗакрытии() СохранитьЗначение("НКК_МЕСТОХРАНЕНИЯ",МестоХранения); СохранитьЗначение("НКК_МЕСТОХРАНЕНИЯ1",НовоеМестоХранения); КонецПроцедуры |
|||
13
walkman315
02.11.12
✎
11:57
|
я серьёзно))
просто скажите какая это функция, просто я даже незнаю как это в инете искать, уже все писала, нужного мне не находит |
|||
14
Ёпрст
02.11.12
✎
11:57
|
это добавь и наслаждайся
|
|||
15
viktor_vv
02.11.12
✎
12:00
|
(13) Кстати, во ВводНового() восстановление уже есть. Видать забыли сохранение добавить.
|
|||
16
walkman315
02.11.12
✎
12:02
|
Ёпрст4 Спасибо большое, все работает))))
огромное спасибо) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |