|
Документ при открытии | ☑ | ||
---|---|---|---|---|
0
Rumpil
13.01.12
✎
17:09
|
Если открыть документ "Заказ поставщику" из отчета и потом закрыть документ не изменив не капли, то выскакивает окно "Сохранить измененные данные ?" - какие данные то ? код проверял, в коде только проверяется этот документ новый или нет и если не новый то никаких изменений документа не происходит
|
|||
1
rotting
13.01.12
✎
17:10
|
плохо проверял
|
|||
2
golden-pack
13.01.12
✎
17:10
|
(0) кэп говорит что изменения есть
|
|||
3
Rumpil
13.01.12
✎
17:12
|
вот весь код, больше ничего нет
Процедура ПриОткрытии() если ЭтоНовый() Тогда Дата = ТекущаяДата(); Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнаяОрганизация"); Склад = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойСклад"); Контрагент = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойПоставщик"); ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента; ВалютаДокумента = Контрагент.ОсновнойДоговорКонтрагента.ВалютаВзаиморасчетов; Ответственный = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойОтветственный"); СтрокиС = 1; РаботаСДиалогами.УстановитьДоступностьПоляВводаНомера(Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Подменю,ЭлементыФормы.Номер); РаботаСДиалогами.АктивизироватьРеквизитВФорме(ЭтотОбъект, ЭтаФорма); КонецЕсли; КонецПроцедуры |
|||
4
Рыцарь
13.01.12
✎
17:14
|
проверь подписки
|
|||
5
Галахад
гуру
13.01.12
✎
17:14
|
А перед открытием?
|
|||
6
Rumpil
13.01.12
✎
17:15
|
(5) такой процедуры вообще нет в этом документе (до самописный)
|
|||
7
mikecool
13.01.12
✎
17:20
|
(6) а если найду? (с)
модуль смотри |
|||
8
NWsFF
13.01.12
✎
17:23
|
Ставь брекпоинт и топай вперед пока не изменится значение Модифицированость() на истина
|
|||
9
Rumpil
13.01.12
✎
17:25
|
(7) найди, вот весь код формы документа:
Перем мТекущаяДатаДокумента; Процедура КнопкаЗагрузитьНажатие(Элемент) ЗагрузитьЭлементы(); КонецПроцедуры Процедура ПриОткрытии() если ЭтоНовый() Тогда Дата = ТекущаяДата(); Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнаяОрганизация"); Склад = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойСклад"); Контрагент = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойПоставщик"); ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента; ВалютаДокумента = Контрагент.ОсновнойДоговорКонтрагента.ВалютаВзаиморасчетов; Ответственный = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(ПараметрыСеанса.ТекущийПользователь, "ОсновнойОтветственный"); СтрокиС = 1; РаботаСДиалогами.УстановитьДоступностьПоляВводаНомера(Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Подменю,ЭлементыФормы.Номер); РаботаСДиалогами.АктивизироватьРеквизитВФорме(ЭтотОбъект, ЭтаФорма); КонецЕсли; КонецПроцедуры Процедура КонтрагентПриИзменении(Элемент) ДоговорКонтрагента = Контрагент.ОсновнойДоговорКонтрагента; ВалютаДокумента = Контрагент.ОсновнойДоговорКонтрагента.ВалютаВзаиморасчетов; РаботаСДиалогами.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); КонецПроцедуры Процедура ФайлыНачалоВыбора(Элемент, СтандартнаяОбработка) Файлы = ""; Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); Диалог.ПолноеИмяФайла = ""; Если Диалог.Выбрать() Тогда Файлы = Диалог.ПолноеИмяФайла; Иначе Возврат; КонецЕслИ; КонецПроцедуры Процедура ФайлыОткрытие(Элемент, СтандартнаяОбработка) //СтандартнаяОбработка = Ложь; // //РасширениеВременногоФайла = Прав(Файлы, 4); // //Если Лев(РасширениеВременногоФайла, 1) = "." Тогда // РасширениеВременногоФайла = Прав(Файлы, 3); // ИмяВременногоФайла = ПолучитьИмяВременногоФайла(РасширениеВременногоФайла); //Иначе // ИмяВременногоФайла = ПолучитьИмяВременногоФайла(); //КонецЕсли; // //СохранитьЗапуститьФайл(ИмяВременногоФайла, Истина); КонецПроцедуры Процедура СохранитьЗапуститьФайл(ИмяВнешнегоФайла, Запустить = Ложь) Если ПустаяСтрока(ИмяВнешнегоФайла) Тогда Предупреждение("Не указано имя файла!"); Возврат; КонецЕсли; ВнешнийФайл = Хранилище.Получить(); Попытка ВнешнийФайл.Записать(ИмяВнешнегоФайла); Исключение Сообщить("Ошибка при сохранении файла: " + ОписаниеОшибки(), СтатусСообщения.Важное); Возврат; КонецПопытки; Если Запустить Тогда Файл = Новый Файл(ИмяВнешнегоФайла); Если Файл.Существует() Тогда Попытка ЗапуститьПриложение(ИмяВнешнегоФайла); Исключение Сообщить("Ошибка при запуске файла: " + ОписаниеОшибки(), СтатусСообщения.Важное); Возврат; КонецПопытки; Иначе Предупреждение("Не удалось найти файл " + ИмяВнешнегоФайла + " на диске!"); КонецЕсли; КонецЕсли; КонецПроцедуры Процедура ЗагрузитьЭлементы() //Файлы = ""; //Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие); //Диалог.ПолноеИмяФайла = ""; //Если Диалог.Выбрать() Тогда // Файлы = Диалог.ПолноеИмяФайла; //Иначе // Возврат; //КонецЕслИ; Попытка гл_appExcel = Новый COMObject("Excel.Application"); Исключение Сообщить(ОписаниеОшибки()); Возврат; КонецПопытки; exWorkBook = гл_appExcel.Workbooks.Open(Файлы); RangeAll = exWorkBook.ActiveSheet.UsedRange; если СтрокиС = 0 тогда СтрокиС=1; КонецЕсли; //СтрокиПо = RangeAll.Rows.Count; //Сообщить(СтрокиПо); Для НомерСтроки = СтрокиС По СтрокиПо Цикл ПрописьюНоменклатура = RangeAll.Cells(НомерСтроки, 1 ).Value; ПрописьюШтрихкод = RangeAll.Cells(НомерСтроки, 2 ).Value; ПрописьюКоличество = RangeAll.Cells(НомерСтроки, 3 ).Value; ПрописьюЦена = RangeAll.Cells(НомерСтроки, 4 ).Value; ПрописьюСклад = RangeAll.Cells(НомерСтроки, 5 ).Value; //Сообщить(ПрописьюНоменклатура); //Сообщить(ПрописьюШтрихкод); //Сообщить(ПрописьюКоличество); //Сообщить(ПрописьюЦена); //Сообщить(ПрописьюСклад); Товар = Справочники.Номенклатура.ПустаяСсылка(); //Товар = Справочники.Номенклатура.НайтиПоНаименованию(ПрописьюНоменклатура,Истина); Товар = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул",ПрописьюШтрихкод); //Сред(ПрописьюШтрихкод,1,16); если Товар.Пустая() Тогда Товар = Справочники.Номенклатура.СоздатьЭлемент(); Товар.Наименование = СокрЛП(ПрописьюНоменклатура); Товар.НаименованиеПолное = СокрЛП(ПрописьюНоменклатура); Товар.Артикул = СокрЛП(Сред(ПрописьюШтрихкод,1,16)); Товар.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.Штука; Товар.ЕдиницаХраненияОстатков = Справочники.КлассификаторЕдиницИзмерения.Штука; Товар.ЕдиницаДляОтчетов = Справочники.КлассификаторЕдиницИзмерения.Штука; Товар.ЕдиницаИзмеренияМест = Справочники.КлассификаторЕдиницИзмерения.Штука; Товар.СтавкаНДС = Перечисления.СтавкиНДС.БезНДС; Товар.ВидНоменклатуры = Справочники.ВидыНоменклатуры.ПАКЕТ; Товар.Записать(); Сообщить("Создан товар "+Товар.Наименование+" со штрих кодом "+Товар.Артикул,СтатусСообщения.Информация); КонецЕсли; НоваяСтрока = Товары.Добавить(); НоваяСтрока.Номенклатура = Справочники.Номенклатура.НайтиПоНаименованию(Товар.Ссылка,Истина); НоваяСтрока.ЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.Штука; НоваяСтрока.Артикул = Сред(ПрописьюШтрихкод,1,16); НоваяСтрока.Количество = ПрописьюКоличество; НоваяСтрока.Цена = ПрописьюЦена; НоваяСтрока.Сумма = ПрописьюКоличество*ПрописьюЦена; НоваяСтрока.СкладРезерв = Справочники.Склады.НайтиПоНаименованию(ПрописьюСклад,Истина); КонецЦикла; exWorkBook.Close( Ложь ); гл_appExcel.Workbooks.Close( ); КонецПроцедуры Процедура СтрокиСПриИзменении(Элемент) если СтрокиС = 0 тогда Предупреждение("Не можеть быть 0 "); Возврат; КонецЕсли; КонецПроцедуры Процедура ТоварыНоменклатураПриИзменении(Элемент) ТекДан=ЭлементыФормы.Товары.ТекущиеДанные; ПровЭлемент(ТекДан); Расчет(); АвтоматическийЗаполнения(); КонецПроцедуры Функция ПровЭлемент(ТекДан) прОтказ=Ложь; ТекДан = ЭлементыФормы.Товары.ТекущиеДанные; Если ТекДан.Номенклатура.ВидНоменклатуры = Справочники.ВидыНоменклатуры.ПАКЕТ Тогда Предупреждение(ТекДан.Номенклатура.Наименование + " невозможно выбрать пакет."); прОтказ=Истина; ТекДан.Номенклатура = Неопределено; КонецЕсли; Возврат прОтказ; КонецФункции Процедура Расчет() ТекущаяДанные = ЭлементыФормы.Товары.ТекущиеДанные; ТекущаяДанные.Сумма = ТекущаяДанные.Количество*ТекущаяДанные.Цена; КонецПроцедуры Процедура АвтоматическийЗаполнения() ТекущаяДанные = ЭлементыФормы.Товары.ТекущиеДанные; ТекущаяДанные.ЕдиницаИзмерения = ТекущаяДанные.Номенклатура.БазоваяЕдиницаИзмерения; ТекущаяДанные.Артикул = ТекущаяДанные.Номенклатура.Артикул; КонецПроцедуры Процедура ТоварыКоличествоПриИзменении(Элемент) Расчет(); КонецПроцедуры Процедура ТоварыЦенаПриИзменении(Элемент) Расчет(); КонецПроцедуры Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) СуммаДокумента = Товары.Итог("Сумма"); КонецПроцедуры Процедура ДействияФормыРедактироватьКодНомер(Кнопка) РаботаСДиалогами.ИзменениеВозможностиРедактированияНомера(ЭтотОбъект.Метаданные(), ЭтаФорма, ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); КонецПроцедуры Процедура ДатаПриИзменении(Элемент) РаботаСДиалогами.ПроверитьНомерДокумента(ЭтотОбъект, мТекущаяДатаДокумента); РаботаСДиалогами.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); КонецПроцедуры Процедура ОрганизацияПриИзменении(Элемент) РаботаСДиалогами.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); КонецПроцедуры Процедура ДоговорКонтрагентаПриИзменении(Элемент) РаботаСДиалогами.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); КонецПроцедуры Процедура СкладПриИзменении(Элемент) РаботаСДиалогами.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); КонецПроцедуры Процедура ПослеЗаписи() РаботаСДиалогами.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); КонецПроцедуры Процедура ТоварыХарактеристикаНоменклатурыПриИзменении(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; //СуммаСтроки = СтрокаТабличнойЧасти.Цена * СтрокаТабличнойЧасти.Количество; УправлениеЗапасами.ДобавитьСоставНабора(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры Процедура КоманднаяПанель1ДействиеПодбор(Кнопка) ФормаПодбора=Справочники.Номенклатура.ПолучитьФормуВыбора(,ЭлементыФормы.Товары); ФормаПодбора.Открыть(); КонецПроцедуры Процедура ТоварыОбработкаВыбора(Элемент, ВыбранноеЗначение, СтандартнаяОбработка) //добавим строку НоваяСтрока=Товары.Добавить(); НоваяСтрока.Номенклатура = ВыбранноеЗначение; НоваяСтрока.ЕдиницаИзмерения = ВыбранноеЗначение.БазоваяЕдиницаИзмерения; НоваяСтрока.Артикул = ВыбранноеЗначение.Артикул; ЭлементыФормы.Товары.ТекущаяСтрока=НоваяСтрока; ПровЭлемент(НоваяСтрока); КонецПроцедуры Процедура КоманднаяПанель1СоставНабора(Кнопка) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; Если СтрокаТабличнойЧасти = Неопределено Тогда Возврат; ИначеЕсли НЕ СтрокаТабличнойЧасти.Номенклатура.Комплект Тогда Предупреждение("Номенклатура не является набором-комплектом!"); Возврат; КонецЕсли; ФормаСоставНабора = Документы.ЗаказПоставщику.ПолучитьФорму("СоставНабора",); Запрос = НОвый Запрос; Запрос.Текст = "ВЫБРАТЬ | НоменклатураКомплектующие.Номенклатура, | НоменклатураКомплектующие.Комплектующая, | НоменклатураКомплектующие.Количество |ИЗ | Справочник.Номенклатура.Комплектующие КАК НоменклатураКомплектующие |ГДЕ | НоменклатураКомплектующие.Ссылка = &прНомен"; Запрос.УстановитьПараметр("прНомен",СтрокаТабличнойЧасти.Номенклатура); Выборка = Запрос.Выполнить().Выбрать(); ФормаСоставНабора.Комплектующие.Очистить(); пока Выборка.Следующий() Цикл НоваяСтрока = ФормаСоставНабора.Комплектующие.Добавить(); НоваяСтрока.Номенклатура = Выборка.Номенклатура; НоваяСтрока.Комплектующая = Выборка.Комплектующая; НоваяСтрока.Количество = Выборка.Количество; КонецЦикла; ФормаСоставНабора.Открыть(); //мТекущаяСтрокаНабор = СтрокаТабличнойЧасти; //СтруктураПараметров = Новый Структура(); //СтруктураПараметров.Вставить("Номенклатура", СтрокаТабличнойЧасти.Номенклатура); //СтруктураПараметров.Вставить("Количество", СтрокаТабличнойЧасти.Количество); //СтруктураПараметров.Вставить("ЕдиницаИзмерения", СтрокаТабличнойЧасти.ЕдиницаИзмерения); //СтруктураПараметров.Вставить("ДокументОбъект", ЭтотОбъект); //СтруктураПараметров.Вставить("ФормаДокумента", ЭтаФорма); //СтруктураПараметров.Вставить("ИмяТабличнойЧасти", "Товары"); //СтруктураПараметров.Вставить("КлючСтроки", СтрокаТабличнойЧасти.КлючСтроки); //СтруктураПараметров.Вставить("ТолькоПросмотр", Не СтрокаТабличнойЧасти.Номенклатура.Комплект); //СтруктураПараметров.Вставить("ЗаголовокФормы", "Состав набора-комплекта"); // Открываем форму "Состав набора". //мФормаСоставНабора = Обработки.СоставНабора.ПолучитьФорму("ОсновнаяФорма", ЭтаФорма, ЭтаФорма); //мФормаСоставНабора.СтруктураИсходныхПараметров = СтруктураПараметров; //мФормаСоставНабора.Открыть(); КонецПроцедуры |
|||
10
mikecool
13.01.12
✎
17:25
|
платформа 8.2?
|
|||
11
Rumpil
13.01.12
✎
17:26
|
(10) 8.1
|
|||
12
Галахад
гуру
13.01.12
✎
17:27
|
Сумма-то меняется.
|
|||
13
НЕА123
13.01.12
✎
17:28
|
(9)
одно это >Процедура ТоварыПриВыводеСтроки(Элемент, ОформлениеСтроки, ДанныеСтроки) > СуммаДокумента = Товары.Итог("Сумма"); >КонецПроцедуры уже умиляет! |
|||
14
mikecool
13.01.12
✎
17:28
|
(11) тогда (8)
|
|||
15
Быдлокодер 80 lvl
13.01.12
✎
17:29
|
(13) +1, опередил!
|
|||
16
Rumpil
13.01.12
✎
17:29
|
(13) а шо, пипец, да ? ))
|
|||
17
НЕА123
13.01.12
✎
17:30
|
(16)
неа. это пипедище! |
|||
18
Rumpil
13.01.12
✎
17:35
|
(17) понял, корректирую, мерси )
|
|||
19
mikecool
13.01.12
✎
17:38
|
(18) правильно, используй хотя бы ПриПолученииДанных
))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |