|
после загрузки справочника выдает ошибку. Значение не является значением объектного типа | ☑ | ||
---|---|---|---|---|
0
Sanekaa
17.09.15
✎
16:57
|
Помогите кто-нибудь, заливала как обычно новый список номенклатуры из эксель с помощью обработки "загрузка данных из табличной части". Раньше уже заливала товары, сейчас залила услуги. Причем когда заливала сначала поставила вид номенклатуры товары, потом поменяла на услуги и еще раз перезалила, номенклатура изменилась на услуги.
Но теперь глючит в заказе покупателя, при выборе подбором услуг, даже старых, вылезает вот такая штука Значение не является значением объектного типа ( Вид номенклатуры) Подробнее {Документ.ЗаказПокупателя.Форма.ФормаДокумента.Форма(934)}: Значение не является значением объектного типа (ВидНоменклатуры) СтрокаТабличнойЧасти.ВидНоменклатуры = СтрокаТабличнойЧасти.Номенклатура.ВидНоменклатуры; Причем несмотря что в номенклатуре стоит услуга, а не товар, я могу эту услугу поставить в заказе покупателя в колонку товаров что делать?((((((( |
|||
1
Ненавижу 1С
гуру
17.09.15
✎
17:00
|
начнем с названия конфигурации и её версии
|
|||
2
Sanekaa
17.09.15
✎
17:02
|
Извияюсь,
1с 8.2 УТ 10.3 |
|||
3
Живой Ископаемый
17.09.15
✎
17:02
|
не, ну ты посмотри на угодника, с прелюдий начинает
|
|||
4
Sanekaa
17.09.15
✎
17:07
|
также загружала единицы товара и цены
настройки загрузок могу скинуть, они у меня сохранены |
|||
5
Ненавижу 1С
гуру
17.09.15
✎
17:08
|
галка услуга стоит у этой номенклатуры?
|
|||
6
Sanekaa
17.09.15
✎
17:12
|
(5) галка - вы имеете ввиду выбрано ли в самой номенклатуре что это услуга, а не товар? - да, вид номенклатуры стоит "услуга"
|
|||
7
Ненавижу 1С
гуру
17.09.15
✎
17:20
|
(6) реквизит такой справочника номенклатура, называется "услуга"
|
|||
8
Sanekaa
17.09.15
✎
17:36
|
(7) в самом справочнике? не очень понимаю где можно галочку поставить, везде выбор из списка: товар, услуга или набор-комплект
|
|||
9
Dmitriy_76
17.09.15
✎
17:46
|
думаю ошибка тут : СтрокаТабличнойЧасти.ВидНоменклатуры
а не справа |
|||
10
Dmitriy_76
17.09.15
✎
17:48
|
+(9) в СтрокаТабличнойЧасти есть колонка ВидНоменклатуры ?
|
|||
11
Sanekaa
17.09.15
✎
17:50
|
(7) просто не понимаю, старые уже заведенные давно услуги при подборе в заказе покупателя тоже выдают ошибку((((( раньше никогда такого не было
|
|||
12
Sanekaa
17.09.15
✎
17:51
|
(10) да, есть
|
|||
13
Dmitriy_76
17.09.15
✎
17:52
|
(12) отладчик ошибку показывает слева или справа ?
|
|||
14
Dmitriy_76
17.09.15
✎
17:53
|
(11) либо реквизита таб части нет...либо у справочника номенклатура...
|
|||
15
Sanekaa
17.09.15
✎
17:53
|
(13) как понять?
|
|||
16
Sanekaa
17.09.15
✎
17:56
|
(14) а почему он пропал? раньше же был? и где искать реквизиты? где их посмотреть?
все это произошло после того как загрузила номенклатуру 2 раза одну и туже, сначала как товары, потом как услуги и вот теперь глюк, ошибка |
|||
17
Dmitriy_76
17.09.15
✎
17:56
|
(15) отладчик есть ?
|
|||
18
Sanekaa
17.09.15
✎
17:57
|
мне реквизиты и галочки искать в конфигурации? если да, я в конфигурацию еще не заходила
|
|||
19
daniel63
17.09.15
✎
17:57
|
Либо вместо номенклатуры в табличной части пустое значение, либо элемент является группой
|
|||
20
Sanekaa
17.09.15
✎
17:58
|
в конфигураторе пробовала: администрирование - тестирование и исправление, не помогло
|
|||
21
Dmitriy_76
17.09.15
✎
17:59
|
(19) f gjqvtv 'nj njkmrj d jnkflxbrt//f gjkmpjdfnmcz jnkflxbrjv//vs yt vj;tv///dct
|
|||
22
Sanekaa
17.09.15
✎
17:59
|
(17) не знаю, не пользовалась, где он должен быть?где его поискать?
|
|||
23
Sanekaa
17.09.15
✎
18:01
|
(19) после того как ошибку закрываешь, номенклатура добавляется в табличную часть заказа покупателя
|
|||
24
Sanekaa
17.09.15
✎
18:03
|
В окне с ошибкой есть кнопка конфигуратор, в конфигураторе открывает окно Документ ЗаказПокупателя: ФормаДокумента
Перем мОповещатьВладельцаОЗакрытии Экспорт; // Хранит последнюю установленную дату документа - для проверки перехода документа в другой период Перем мТекущаяДатаДокумента; // Хранит текущее значение учетной политики, организация является плательщиком ЕНВД Перем мОрганизацияЯвляетсяПлательщикомЕНВД; // Хранит текущее значение организации для контроля учетной политики, организация является плательщиком ЕНВД Перем мТекущаяОрганизация; Перем мКолонкиТовары, мКолонкиВозвратнаяТара, мИспользоватьТару, мКолонкиУслуги, мКолонкиТаблицаАвтоСкидок; Перем мВидимостьЗакладкиУслуг; Перем мРазрешитьНулевыеЦеныВОпте, мРазрешитьНулевыеЦеныВРознице; // Устанавливается в значение "Истина", если пользователю можно менять цену // в документе Перем мМожноМенятьЦенуВДокументе; Перем мЧас; Перем мМинута; Перем мОбработкаПоискаПоСтроке; Перем мТекстПоискаПоСтроке; Перем мПоследнееЗначениеЭлементаПоискаПоСтроке; // Хранит суммарное количество товаров в табличной части Товары Перем мТекущееКоличествоТоваров; Перем мФормаСоставНабора, мТекущаяСтрокаНабор; // Хранит дерево кнопок подменю заполнение ТЧ Перем мКнопкиЗаполненияТЧ; Перем мКартинкаНаборКомплект; Перем мТерминалы; Перем мИспользоватьВнутренниеЗаказы; //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ // Процедура выполняет необходимые действия при изменении дисконтной карты. // Процедура ПриИзмененииДисконтнойКарты() Если ЗначениеЗаполнено(ДисконтнаяКарта) Тогда Если ЗначениеЗаполнено(ДисконтнаяКарта.ВладелецКарты) И ДисконтнаяКарта.ВладелецКарты <> Контрагент Тогда Если НЕ ЗначениеЗаполнено(Контрагент) Тогда Ответ = КодВозвратаДиалога.Да; Иначе Ответ = Вопрос("У выбранной дисконтной карты владелец " + СокрЛП(ДисконтнаяКарта.ВладелецКарты) + "." + Символы.ПС + "Изменить контрагента в документе?", РежимДиалогаВопрос.ДаНет); КонецЕсли; Если Ответ = КодВозвратаДиалога.Да Тогда Контрагент = ДисконтнаяКарта.ВладелецКарты; ПриИзмененииКонтрагента(); ПриИнтерактивномИзмененииДоговора(); КонецЕсли; КонецЕсли; КонецЕсли; ПересчитатьАвтоматическиеСкидки(); КонецПроцедуры //ПриИзмененииДисконтнойКарты() // Процедура выполняет необходимые действия при изменении номенклатуры в ТЧ "Товары". // // Параметры: // Элемент - ЭУ, для которого вызван обработчик. // Процедура ПриИзмененииНоменклатурыТовары(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПриИзмененииНоменклатурыТовары() // Процедура выполняет необходимые действия при изменении количества в ТЧ "Товары". // // Параметры: // Элемент - ЭУ, для которого вызван обработчик. // Процедура ПриИзмененииКоличестваТовары(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; // Рассчитать реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ДокументОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПриИзмененииКоличестваТовары() // Процедура выполняет необходимые действия перед удалением строки ТЧ "Товары". // // Параметры: // Элемент - ЭУ, для которого вызван обработчик. // Отказ - флаг отказа. // Процедура ПередУдалениемТовары(Элемент, Отказ) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; Если Элемент.ТекущиеДанные = мТекущаяСтрокаНабор И мФормаСоставНабора.Открыта() Тогда мФормаСоставНабора.Закрыть(); КонецЕсли; УправлениеЗапасами.ОчиститьСоставНабора(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПередУдалениемТовары() // Процедура выполняет необходимые действия после удаления строки ТЧ "Товары". // // Параметры: // Элемент - ЭУ, для которого вызван обработчик. // Процедура ПослеУдаленияТовары(Элемент) ПересчитатьАвтоматическиеСкидки(); // Итоговая информация об отклонение от плановой себестоимости. РаботаСДиалогами.СформироватьНадписьИтоговоеОтклонениеОтПлановойСебестоимости(ЭлементыФормы.ИнфНадписьИтоговоеОтклонениеОтПлановойСебестоимости, ЭтотОбъект); КонецПроцедуры // ПослеУдаленияТовары() // Процедура устанавливает подменю "Заполнить" в командных панелях ТЧ документа при необходимости // Процедура УстановитьКнопкиПодменюЗаполненияТЧ(); мКнопкиЗаполненияТЧ = УниверсальныеМеханизмы.ПолучитьДеревоКнопокЗаполненияТабличныхЧастей(Ссылка,Новый Действие("НажатиеНаДополнительнуюКнопкуЗаполненияТЧ")); СоответствиеТЧ = Новый Соответствие; СоответствиеТЧ.Вставить(ЭлементыФормы.Товары,ЭлементыФормы.КоманднаяПанельТовары.Кнопки.ПодменюЗаполнить); СоответствиеТЧ.Вставить(ЭлементыФормы.ВозвратнаяТара,ЭлементыФормы.КоманднаяПанельВозвратнаяТара.Кнопки.ПодменюЗаполнить); СоответствиеТЧ.Вставить(ЭлементыФормы.Услуги,ЭлементыФормы.КоманднаяПанельУслуги); УниверсальныеМеханизмы.СформироватьПодменюЗаполненияТЧ(мКнопкиЗаполненияТЧ,СоответствиеТЧ); КонецПроцедуры // Процедура вызывается для обработки программного изменения строки. // // Параметры // СтрокаТабличнойЧасти - строка ТЧ "Товары", изменение которой нужно обработать. // ИзмененнаяКолонка - название колонки, обработчик изменения которой необходимо вызвать. // Процедура ИзменениеСтрокиПрограммное(СтрокаТабличнойЧасти, ИзмененнаяКолонка) Экспорт ЭлементыФормы.Товары.ТекущаяСтрока = СтрокаТабличнойЧасти; Если ИзмененнаяКолонка = "Номенклатура" Тогда ПриИзмененииНоменклатурыТовары(ЭлементыФормы.Товары); ИначеЕсли ИзмененнаяКолонка = "Количество" Тогда ПриИзмененииКоличестваТовары(ЭлементыФормы.Товары); КонецЕсли; КонецПроцедуры // ИзменениеСтрокиПрограммное() // Процедура вызывается для обработки программного удалениия строки. // // Параметры // СтрокаТабличнойЧасти - строка ТЧ "Товары", которую нужно удалить. // Процедура УдалениеСтрокиПрограммное(СтрокаТабличнойЧасти) Экспорт ЭлементыФормы.Товары.ТекущаяСтрока = СтрокаТабличнойЧасти; ПередУдалениемТовары(ЭлементыФормы.Товары, Ложь); Товары.Удалить(СтрокаТабличнойЧасти); ПослеУдаленияТовары(ЭлементыФормы.Товары); КонецПроцедуры // УдалениеСтрокиПрограммное() // Функция формирует структуру параметров для поиска по строке контактного лица контрагента. // // Параметры // НЕТ // // Возвращаемое значение: // Структура имен и значений параметров // Функция ПолучитьСтруктуруПараметровПоискаПоСтроке() СтруктураПараметров = Новый Структура; Если ЗначениеЗаполнено(Контрагент) Тогда СтруктураПараметров.Вставить("Владелец", Контрагент); КонецЕсли; Возврат СтруктураПараметров; КонецФункции // ПолучитьСтруктуруПараметровПоискаПоСтроке()() // Процедура выполняет необходимые действия при изменении договора взаиморасчетов // с контрагентом. // Процедура ПриИнтерактивномИзмененииДоговора() ПриИзмененииДоговора(); МеханизмНумерацииОбъектов.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); РаботаСДиалогами.СформироватьНадписьДолга(ДоговорКонтрагента, Ссылка, ЭлементыФормы.ИнфНадписьДолга, , Истина); УстановитьЗаголовкиПоДоговору(); // Услуги на комиссию не отдаем. мВидимостьЗакладкиУслуг = ДоговорКонтрагента.ВидДоговора <> Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером; УстановитьВидимость(); мТекущийДоговорКонтрагента = ДоговорКонтрагента; КонецПроцедуры // ПриИнтерактивномИзмененииДоговора() // Функция формирует список запросов для передачи в форму подбора. // // Параметры: // ТабличнаяЧасть - табличная часть, для подбора в которую формируется список запросов. // // Возвращаемое значение: // Список значений - список запросов. // Функция СформироватьСписокЗапросовДляПодбора(ТабличнаяЧасть) СписокЗапросов = Новый СписокЗначений(); СписокЗапросов.Добавить(,"По справочнику"); Если ТабличнаяЧасть = Товары ИЛИ ТабличнаяЧасть = ВозвратнаяТара Тогда СписокЗапросов.Добавить("ОстаткиНоменклатуры", "По остаткам номенклатуры"); Если ЗначениеЗаполнено(ТипЦен) ИЛИ (ЗначениеЗаполнено(ДоговорКонтрагента) И ДоговорКонтрагента.ВидУсловийДоговора = Перечисления.ВидыУсловийДоговоровВзаиморасчетов.СДополнительнымиУсловиями) Тогда СписокЗапросов.Добавить("РасходОстаткиИЦеныНоменклатуры", "По остаткам и ценам номенклатуры"); СписокЗапросов.Добавить("РасходЦеныНоменклатуры", "По ценам номенклатуры"); КонецЕсли; ИначеЕсли ТабличнаяЧасть = Услуги Тогда СписокЗапросов.Добавить("РасходУслуги", "По услугам предприятия"); Если ЗначениеЗаполнено(ТипЦен) ИЛИ (ЗначениеЗаполнено(ДоговорКонтрагента) И ДоговорКонтрагента.ВидУсловийДоговора = Перечисления.ВидыУсловийДоговоровВзаиморасчетов.СДополнительнымиУсловиями) Тогда СписокЗапросов.Добавить("РасходЦеныУслуг", "По ценам и услугам предприятия"); КонецЕсли; КонецЕсли; Возврат СписокЗапросов; КонецФункции // СформироватьСписокЗапросовДляПодбора() // Процедура обновляет параметры в форме подбора, если она открыта. // // Параметры: // Реквизит - измененный реквизит. // Процедура ОбновитьФормуПодбора(Реквизит) РаботаСДиалогами.ОбновитьПараметрыИФормуПодбора(ЭтотОбъект, ЭтаФорма, Реквизит); КонецПроцедуры // ОбновитьФормуПодбора() // Процедура вызывает сервисный механизм для подбора номеклатуры в табличную часть. // // Параметры: // ТабличнаяЧасть - табличная часть, в которую осуществляется подбор. // Процедура ДействиеПодбор(ТабличнаяЧасть) Перем Команда, Валюта; ЕстьЦена = мМожноМенятьЦенуВДокументе; ЕстьСерия = ТабличнаяЧасть = Товары И ЗначениеЗаполнено(ДоговорКонтрагента) И ДоговорКонтрагента.ОбособленныйУчетТоваровПоЗаказамПокупателей И мРезервироватьПоСериям И (ЗначениеЗаполнено(СкладГруппа) и ТипЗнч(СкладГруппа)=Тип("СправочникСсылка.Склады")); СкрыватьХарактеристику = Ложь; Валюта = ВалютаДокумента; ПодбиратьУслуги = Ложь; Если ТабличнаяЧасть = Товары Тогда Команда = "ПодборВТабличнуюЧастьТовары"; ИмяТабличнойЧасти = "Товары"; ИначеЕсли ТабличнаяЧасть = Услуги Тогда Команда = "ПодборВТабличнуюЧастьУслуги"; ИмяТабличнойЧасти = "Услуги"; СкрыватьХарактеристику = Истина; ПодбиратьУслуги = Истина; ИначеЕсли ТабличнаяЧасть = ВозвратнаяТара Тогда Команда = "ПодборВТабличнуюЧастьВозвратнаяТара"; ИмяТабличнойЧасти = "Тара"; КонецЕсли; СписокВидовПодбора = СформироватьСписокЗапросовДляПодбора(ТабличнаяЧасть); ПредставлениеДок = Метаданные().Представление(); СтруктураПараметровПодбора = Новый Структура(); СтруктураПараметровПодбора.Вставить("Команда" , Команда); СтруктураПараметровПодбора.Вставить("СписокВидовПодбора" , СписокВидовПодбора); // Параметры запросов. ВременнаяДатаРасчетов = ?(НачалоДня(Дата) = НачалоДня(ТекущаяДата()), Неопределено, Дата); СтруктураПараметровПодбора.Вставить("ДатаРасчетов" , ВременнаяДатаРасчетов); СтруктураПараметровПодбора.Вставить("Склад" , СкладГруппа); СтруктураПараметровПодбора.Вставить("ТипЦен" , ТипЦен); СтруктураПараметровПодбора.Вставить("ДоговорКонтрагента" , ДоговорКонтрагента); СтруктураПараметровПодбора.Вставить("Контрагент" , Контрагент); СтруктураПараметровПодбора.Вставить("Организация" , Организация); СтруктураПараметровПодбора.Вставить("ПодбиратьУслуги" , ПодбиратьУслуги); СтруктураПараметровПодбора.Вставить("СпособЗаполненияЦен" , Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры); СтруктураПараметровПодбора.Вставить("ЕстьЦена" , ЕстьЦена); СтруктураПараметровПодбора.Вставить("ЕстьСерия" , ЕстьСерия); СтруктураПараметровПодбора.Вставить("ИспользоватьГруппуДоступности", Истина); СтруктураПараметровПодбора.Вставить("ВалютаДокумента" , Валюта); СтруктураПараметровПодбора.Вставить("СкрыватьХарактеристику" , СкрыватьХарактеристику); СтруктураПараметровПодбора.Вставить("Заголовок", "Подбор номенклатуры в документ " + ПредставлениеДок + " № " + Номер + " (" + ИмяТабличнойЧасти + ")"); СтруктураПараметровПодбора.Вставить("УсловиеПродаж" , УсловиеПродаж); РаботаСДиалогами.ОткрытьПодборНоменклатуры(ЭтаФорма, СтруктураПараметровПодбора, Метаданные()); КонецПроцедуры // ДействиеПодбор() // Производит заполнение документа переданными из формы подбора данными. // // Параметры: // ТабличнаяЧасть - табличная часть, в которую надо добавлять подобранную позицию номенклатуры; // ЗначениеВыбора - структура, содержащая параметры подбора. // Процедура ОбработкаПодбора(ТабличнаяЧасть, ЗначениеВыбора) Экспорт Перем Номенклатура; Если РаботаСДиалогами.ПроверитьЧтоКачествоВСтруктуреПодбораНеУдовлетворяетУсловиямПодбора(ЗначениеВыбора, Истина) Тогда Возврат; КонецЕсли; // Получим параметры подбора из структуры подбора. ЗначениеВыбора.Свойство("Номенклатура", Номенклатура); Если (ТабличнаяЧасть = Товары ИЛИ ТабличнаяЧасть = ВозвратнаяТара) И Номенклатура.Услуга Тогда Предупреждение("В данном контексте услуги не подбираются!"); Возврат; ИначеЕсли ТабличнаяЧасть = Услуги И Не Номенклатура.Услуга Тогда Предупреждение("В данном контексте товары не подбираются!"); Возврат; КонецЕсли; СтрокаТабличнойЧасти = ЗаполнитьТабличнуюЧастьИзПодбора(ТабличнаяЧасть, ЗначениеВыбора); Если ТабличнаяЧасть = Товары Тогда Если СтрокаТабличнойЧасти.СерияНоменклатуры <> Справочники.СерииНоменклатуры.ПустаяСсылка() Тогда СтрокаТабличнойЧАсти.Размещение = СкладГруппа; КонецЕсли; КонецЕсли; Если (ТабличнаяЧасть = Товары ИЛИ ТабличнаяЧасть = Услуги) Тогда РаботаСДиалогами.СформироватьНадписьИтоговоеОтклонениеОтПлановойСебестоимости(ЭлементыФормы.ИнфНадписьИтоговоеОтклонениеОтПлановойСебестоимости, ЭтотОбъект); КонецЕсли; ТабличнаяЧастьИмя = ?(ТабличнаяЧасть = Товары, "Товары","ВозвратнаяТара"); ЭлементыФормы[ТабличнаяЧастьИмя].ТекущаяСтрока = СтрокаТабличнойЧасти; ЭлементыФормы[ТабличнаяЧастьИмя].ТекущаяКолонка = ЭлементыФормы[ТабличнаяЧастьИмя].Колонки["Количество"]; КонецПроцедуры // ОбработкаПодбора() // Производит заполнение и установку необходимых полей при изменении характеристики товара в табличной части. // Процедура ПриИзмененииХарактеристикиНоменклатурыТоваров(СтрокаТабличнойЧасти) // Заполняем реквизиты табличной части. ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета); // Состав набора зависит от его характеристики. УправлениеЗапасами.ДобавитьСоставНабора(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПриИзмененииХарактеристикиНоменклатурыТоваров() // Обновляет текущее значение учетной политики розничная торговля облагается ЕНВД. // Процедура ПриИзмененииОблагаетсяЕНВД(РежимВызова = "") Если НЕ ЗначениеЗаполнено(РежимВызова) Тогда мОрганизацияЯвляетсяПлательщикомЕНВД = ОбщегоНазначения.УчетнаяПолитикаНалоговыйУчет("ОрганизацияЯвляетсяПлательщикомЕНВД", Организация, Дата); мТекущаяОрганизация = Организация; Иначе РаботаСДиалогами.ПриИзмененииОрганизацияЯвляетсяПлательщикомЕНВД(ЭтотОбъект, РежимВызова, Услуги, мОрганизацияЯвляетсяПлательщикомЕНВД, мТекущаяОрганизация); КонецЕсли; КонецПроцедуры // ПриИзмененииОблагаетсяЕНВД() Процедура ОбработкаВыбораЗаполненияТабличнойЧастиИзТабличногоДокумента(ЗначениеВыбора) ТабличнаяЧасть = ЭтотОбъект[ЗначениеВыбора.ИмяТабличнойЧасти]; ТабличнаяЧасть.Очистить(); Для каждого Строка Из ЗначениеВыбора.ТаблицаДанных Цикл СтрокаТабличнойЧасти = ТабличнаяЧасть.Добавить(); СтрокаТабличнойЧасти.Номенклатура = Строка.Номенклатура; СтрокаТабличнойЧасти.Количество = Строка.Количество; Если ЗначениеВыбора.ИмяТабличнойЧасти = "Товары" Тогда ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти); ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект); ИначеЕсли ЗначениеВыбора.ИмяТабличнойЧасти = "ВозвратнаяТара" Тогда // Выполнить общие действия для всех документов при изменении возвратной тары. ОбработкаТабличныхЧастей.ПриИзмененииВозвратнойТарыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); // Заполнить реквизиты табличной части. ОбработкаТабличныхЧастей.ЗаполнитьЦенуВозвратнойТарыТабЧастиПоступление(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета); // Рассчитать реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьСуммуВозвратнойТарыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецЕсли; КонецЦикла; КонецПроцедуры // ОбработкаВыбораЗаполненияТабличнойЧастиИзТабличногоДокумента() // Очищает значение реквизита в табличных частях "Товары", "Возвратная тара". // Процедура ОчиститьРеквизитВТабличнойЧасти(ТабличнаяЧасть, ИмяРеквизита) // Очистим значения в строках Для Каждого Строка Из ТабличнаяЧасть Цикл Строка[ИмяРеквизита] = Неопределено; КонецЦикла; КонецПроцедуры // Процедура очищает колонку "Размещение" табличной части. // Процедура ОчиститьРазмещениеВТабличнойЧасти(ТабличнаяЧасть) ОчиститьРеквизитВТабличнойЧасти(ТабличнаяЧасть, "Размещение"); Если ТабличнаяЧасть = Товары Тогда Если мКолонкиТовары.СерияНоменклатуры.Видимость Тогда ОчиститьРеквизитВТабличнойЧасти(ТабличнаяЧасть, "СерияНоменклатуры"); КонецЕсли; ТабличнаяЧасть.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, Цена, СтавкаНДС, ЕдиницаИзмерения, ЕдиницаИзмеренияМест, Коэффициент, ПроцентСкидкиНаценки, ПроцентАвтоматическихСкидок, УсловиеАвтоматическойСкидки, ЗначениеУсловияАвтоматическойСкидки, ПлановаяСебестоимость, КлючСтроки", "Количество, КоличествоМест, Сумма, СуммаНДС"); ИначеЕсли ТабличнаяЧасть = ВозвратнаяТара Тогда ТабличнаяЧасть.Свернуть("Номенклатура, Цена", "Количество, Сумма"); КонецЕсли; КонецПроцедуры // Выполняет необходимые действия при изменении вида склада. // Процедура ПриИзмененииВидаСклада() // Определим текущий вид склада Если ЗначениеЗаполнено(СкладГруппа) И ТипЗнч(СкладГруппа) = Тип("СправочникСсылка.Склады") Тогда ВидСклада = СкладГруппа.ВидСклада; Иначе ВидСклада = Перечисления.ВидыСкладов.Оптовый; КонецЕсли; // Оформление колонок таблицы ФлагАвтоОтметкиНезаполненого = Истина; Если (ВидСклада = Перечисления.ВидыСкладов.Оптовый ИЛИ НЕ ЗначениеЗаполнено(ВидСклада)) И мРазрешитьНулевыеЦеныВОпте Тогда ФлагАвтоОтметкиНезаполненого = Ложь; ИначеЕсли ВидСклада = Перечисления.ВидыСкладов.Розничный И мРазрешитьНулевыеЦеныВРознице Тогда ФлагАвтоОтметкиНезаполненого = Ложь; КонецЕсли; мКолонкиТовары.Сумма.АвтоОтметкаНезаполненного = ФлагАвтоОтметкиНезаполненого; мКолонкиТовары.Цена.АвтоОтметкаНезаполненного = ФлагАвтоОтметкиНезаполненого; мКолонкиВозвратнаяТара.Сумма.АвтоОтметкаНезаполненного = ФлагАвтоОтметкиНезаполненого; мКолонкиВозвратнаяТара.Цена.АвтоОтметкаНезаполненного = ФлагАвтоОтметкиНезаполненого; КонецПроцедуры // ПриИзмененииВидаСклада() //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ УПРАВЛЕНИЯ ВНЕШНИМ ВИДОМ ФОРМЫ // Устанавливает соответстующие свойства поля ввода цены при изменении // номенклатуры в текущей строке табличной части. // // Параметры: // Номенклатура - ссылка на справочник, элемент номенклатуры, для которого будем устанавливать цену // Процедура УстановитьСвойстваПоляВводаЦены() ТекущаяСтрока = ЭлементыФормы.Товары.ТекущиеДанные; ЭлементУправления = мКолонкиТовары.Цена.ЭлементУправления; ЭлементУправления.КнопкаСпискаВыбора = Ложь; КонецПроцедуры // УстановитьСвойстваПоляВводаЦены() // Процедура устанавливает доступность кнопки "Заполнить и провести". Кнопка доступна, // если документ - внешний заказ, его дата совпадает с текущей и установлен хотя бы один // из флагов Авторазмещение или Авторезервирование. // // Параметры: // Нет. // Процедура УстановитьДоступностьКнопкиЗаполнитьИПровести() ЭлементыФормы.ДействияФормы.Кнопки.ПодменюЗаполнитьИПровести.Доступность = НачалоДня(Дата) = НачалоДня(ТекущаяДата()); КонецПроцедуры // УстановитьДоступностьКнопкиЗаполнитьИПровести // Процедура устанавливает доступность кнопки "СоздатьРеализацию". Кнопка доступна, // если документ уже был записан. // // Параметры: // Нет. // Процедура УстановитьДоступностьКнопкиДействиеСоздатьРеализацию() ДоступностьСозданияРеализации = НЕ Модифицированность() И не ЭтаФорма.ТолькоПросмотр; ЭлементыФормы.ДействияФормы.Кнопки.ДействиеСоздатьРеализацию.Доступность = ДоступностьСозданияРеализации; КонецПроцедуры // УстановитьДоступностьКнопкиДействиеСоздатьРеализацию() // Процедура устанавливает видимость для тех колонок в табличной части // "Товары", видимость которых определяется реквизитами документа. // // Параметры: // Нет. // Процедура УстановитьВидимость() // Колонки налога показываем только тогда, когда его учитываем. Если УчитыватьНДС <> мКолонкиТовары.СтавкаНДС.Видимость Тогда ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СтавкаНДС, УчитыватьНДС); КонецЕсли; Если УчитыватьНДС <> мКолонкиТовары.СуммаНДС.Видимость Тогда ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СуммаНДС, УчитыватьНДС); КонецЕсли; Если УчитыватьНДС <> мКолонкиУслуги.СтавкаНДС.Видимость Тогда ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиУслуги.СтавкаНДС, УчитыватьНДС); КонецЕсли; Если УчитыватьНДС <> мКолонкиУслуги.СуммаНДС.Видимость Тогда ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиУслуги.СуммаНДС, УчитыватьНДС); КонецЕсли; // Управление доступностью элементов формы в зависимости от вида операции КнопкиКоманднойПанели = ЭлементыФормы.ДействияФормы.Кнопки; ТолькоПросмотр = ЭтаФорма.ТолькоПросмотр; //для кнопок с неустановленным признаком "ИзменяетДанные" явно установим доступность //для кнопок Анализ и СоздатьРеализацию - есть отдельная логика, которая зависит еще и от других параметров КнопкиКоманднойПанели.Файлы1.Доступность = не ТолькоПросмотр; Если ЭлементыФормы.ОсновнаяПанель.Страницы.Тара.Доступность Тогда ЭлементыФормы.ОсновнаяПанель.Страницы.Тара.Видимость = мИспользоватьТару; КонецЕсли; ОбособленныйУчет = ЗначениеЗаполнено(ДоговорКонтрагента) И ДоговорКонтрагента.ОбособленныйУчетТоваровПоЗаказамПокупателей; ВидимостьСерии = мРезервироватьПоСериям И ОбособленныйУчет; ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СерияНоменклатуры, ВидимостьСерии); мКолонкиТовары.Размещение.ИзменятьВидимость = истина; ЭлементыФормы.ОсновнаяПанель.Страницы.Услуги.Видимость = мВидимостьЗакладкиУслуг; КонецПроцедуры // УстановитьВидимость() // Процедура устанавливает заголовки по выбранному договору для: // - элемента формы НадписьСуммаВзаиморасчетов. // // Параметры: // Нет. // Процедура УстановитьЗаголовкиПоДоговору() РаботаСДиалогами.УстановитьНадписьСуммыВзаиморасчетов(ЭтотОбъект, ЭтаФорма); КонецПроцедуры // УстановитьЗаголовкиПоДоговору() // Процедура формирует текст в информационной надписи об итогах документа. // // Параметры: // Нет. // Процедура ОбновитьПодвал() // При изменении данных обновим суммы в подвале. СуммаВсего = ПолучитьСуммуСНДС(); СуммаВсегоНДС = ПолучитьСуммуНДС(); ЭлементыФормы.Всего.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсего); ЭлементыФормы.ВсегоНДС.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсегоНДС); //+ СуммаВсегоТовары = ПолучитьСуммуСНДСТовары(); ВсегоНДСТовары = ПолучитьСуммуНДСТовары(); ЭлементыФормы.ВсегоТовары.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсегоТовары); ЭлементыФормы.ВсегоНДСТовары.Значение = ОбщегоНазначения.ФорматСумм(ВсегоНДСТовары); СуммаВсегоМатериалы = ПолучитьСуммуСНДСМатериалы(); ВсегоНДСМатериалы = ПолучитьСуммуНДСМатериалы(); ЭлементыФормы.ВсегоМатериалы.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсегоМатериалы); ЭлементыФормы.ВсегоНДСМатериалы.Значение = ОбщегоНазначения.ФорматСумм(ВсегоНДСМатериалы); СуммаВсегоУслуги = ПолучитьСуммуСНДСУслуги(); ВсегоНДСУслуги = ПолучитьСуммуНДСУслуги(); ЭлементыФормы.ВсегоУслуги.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсегоУслуги); ЭлементыФормы.ВсегоНДСУслуги.Значение = ОбщегоНазначения.ФорматСумм(ВсегоНДСУслуги); //- ВременнаяСтрока = ""; Если (ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента)) И (ДокументОбъект.ВалютаДокумента <> мВалютаРегламентированногоУчета) Тогда ВременнаяСтрока = ВременнаяСтрока + ЗаполнениеДокументов.КратностьДокумента(ДокументОбъект, мВалютаРегламентированногоУчета) + ДокументОбъект.ВалютаДокумента + " = " + ЗаполнениеДокументов.КурсДокумента(ДокументОбъект, мВалютаРегламентированногоУчета) + мВалютаРегламентированногоУчета + ", "; КонецЕсли; Если ЗначениеЗаполнено(ДокументОбъект.ТипЦен) Тогда ВременнаяСтрока = ВременнаяСтрока + "Тип цен: " + ДокументОбъект.ТипЦен; Иначе ВременнаяСтрока = ВременнаяСтрока + "Тип цен: Не заполнено!"; КонецЕсли; Если ЗначениеЗаполнено(ДокументОбъект.УсловиеПродаж) Тогда ВременнаяСтрока = ВременнаяСтрока + ", Условие продаж: " + ДокументОбъект.УсловиеПродаж; КонецЕсли; ЭлементыФормы.ИнфНадписьТоварыИтоги.Заголовок = ВременнаяСтрока; Если НЕ ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента) Тогда ЭлементыФормы.НадписьВсего.Заголовок = "Всего (<>):"; Иначе ЭлементыФормы.НадписьВсего.Заголовок = "Всего (" + СокрЛП(ДокументОбъект.ВалютаДокумента) +"):"; КонецЕсли; //+ Если НЕ ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента) Тогда ЭлементыФормы.НадписьВсегоТовары.Заголовок = "Всего товары (<>):"; Иначе ЭлементыФормы.НадписьВсегоТовары.Заголовок = "Всего товары (" + СокрЛП(ДокументОбъект.ВалютаДокумента) +"):"; КонецЕсли; Если НЕ ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента) Тогда ЭлементыФормы.НадписьВсегоМатериалы.Заголовок = "Всего материалы (<>):"; Иначе ЭлементыФормы.НадписьВсегоМатериалы.Заголовок = "Всего материалы (" + СокрЛП(ДокументОбъект.ВалютаДокумента) +"):"; КонецЕсли; |
|||
25
Рэйв
17.09.15
✎
18:05
|
>>СтрокаТабличнойЧасти.Номенклатура.ВидНоменклатуры
у тебя в СтрокаТабличнойЧасти.Номенклатура какаято хрень. И у нее нет 'ВидНоменклатуры' |
|||
26
Sanekaa
17.09.15
✎
18:05
|
Пардон, не все скопировала вот полностью
Перем мОповещатьВладельцаОЗакрытии Экспорт; // Хранит последнюю установленную дату документа - для проверки перехода документа в другой период Перем мТекущаяДатаДокумента; // Хранит текущее значение учетной политики, организация является плательщиком ЕНВД Перем мОрганизацияЯвляетсяПлательщикомЕНВД; // Хранит текущее значение организации для контроля учетной политики, организация является плательщиком ЕНВД Перем мТекущаяОрганизация; Перем мКолонкиТовары, мКолонкиВозвратнаяТара, мИспользоватьТару, мКолонкиУслуги, мКолонкиТаблицаАвтоСкидок; Перем мВидимостьЗакладкиУслуг; Перем мРазрешитьНулевыеЦеныВОпте, мРазрешитьНулевыеЦеныВРознице; // Устанавливается в значение "Истина", если пользователю можно менять цену // в документе Перем мМожноМенятьЦенуВДокументе; Перем мЧас; Перем мМинута; Перем мОбработкаПоискаПоСтроке; Перем мТекстПоискаПоСтроке; Перем мПоследнееЗначениеЭлементаПоискаПоСтроке; // Хранит суммарное количество товаров в табличной части Товары Перем мТекущееКоличествоТоваров; Перем мФормаСоставНабора, мТекущаяСтрокаНабор; // Хранит дерево кнопок подменю заполнение ТЧ Перем мКнопкиЗаполненияТЧ; Перем мКартинкаНаборКомплект; Перем мТерминалы; Перем мИспользоватьВнутренниеЗаказы; //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ОБЩЕГО НАЗНАЧЕНИЯ // Процедура выполняет необходимые действия при изменении дисконтной карты. // Процедура ПриИзмененииДисконтнойКарты() Если ЗначениеЗаполнено(ДисконтнаяКарта) Тогда Если ЗначениеЗаполнено(ДисконтнаяКарта.ВладелецКарты) И ДисконтнаяКарта.ВладелецКарты <> Контрагент Тогда Если НЕ ЗначениеЗаполнено(Контрагент) Тогда Ответ = КодВозвратаДиалога.Да; Иначе Ответ = Вопрос("У выбранной дисконтной карты владелец " + СокрЛП(ДисконтнаяКарта.ВладелецКарты) + "." + Символы.ПС + "Изменить контрагента в документе?", РежимДиалогаВопрос.ДаНет); КонецЕсли; Если Ответ = КодВозвратаДиалога.Да Тогда Контрагент = ДисконтнаяКарта.ВладелецКарты; ПриИзмененииКонтрагента(); ПриИнтерактивномИзмененииДоговора(); КонецЕсли; КонецЕсли; КонецЕсли; ПересчитатьАвтоматическиеСкидки(); КонецПроцедуры //ПриИзмененииДисконтнойКарты() // Процедура выполняет необходимые действия при изменении номенклатуры в ТЧ "Товары". // // Параметры: // Элемент - ЭУ, для которого вызван обработчик. // Процедура ПриИзмененииНоменклатурыТовары(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПриИзмененииНоменклатурыТовары() // Процедура выполняет необходимые действия при изменении количества в ТЧ "Товары". // // Параметры: // Элемент - ЭУ, для которого вызван обработчик. // Процедура ПриИзмененииКоличестваТовары(Элемент) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; // Рассчитать реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ДокументОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуТабЧасти(ЭлементыФормы.Товары.ТекущиеДанные, ЭтотОбъект); ОбработкаТабличныхЧастей.РассчитатьСуммуНДСТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПриИзмененииКоличестваТовары() // Процедура выполняет необходимые действия перед удалением строки ТЧ "Товары". // // Параметры: // Элемент - ЭУ, для которого вызван обработчик. // Отказ - флаг отказа. // Процедура ПередУдалениемТовары(Элемент, Отказ) СтрокаТабличнойЧасти = ЭлементыФормы.Товары.ТекущиеДанные; Если Элемент.ТекущиеДанные = мТекущаяСтрокаНабор И мФормаСоставНабора.Открыта() Тогда мФормаСоставНабора.Закрыть(); КонецЕсли; УправлениеЗапасами.ОчиститьСоставНабора(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПередУдалениемТовары() // Процедура выполняет необходимые действия после удаления строки ТЧ "Товары". // // Параметры: // Элемент - ЭУ, для которого вызван обработчик. // Процедура ПослеУдаленияТовары(Элемент) ПересчитатьАвтоматическиеСкидки(); // Итоговая информация об отклонение от плановой себестоимости. РаботаСДиалогами.СформироватьНадписьИтоговоеОтклонениеОтПлановойСебестоимости(ЭлементыФормы.ИнфНадписьИтоговоеОтклонениеОтПлановойСебестоимости, ЭтотОбъект); КонецПроцедуры // ПослеУдаленияТовары() // Процедура устанавливает подменю "Заполнить" в командных панелях ТЧ документа при необходимости // Процедура УстановитьКнопкиПодменюЗаполненияТЧ(); мКнопкиЗаполненияТЧ = УниверсальныеМеханизмы.ПолучитьДеревоКнопокЗаполненияТабличныхЧастей(Ссылка,Новый Действие("НажатиеНаДополнительнуюКнопкуЗаполненияТЧ")); СоответствиеТЧ = Новый Соответствие; СоответствиеТЧ.Вставить(ЭлементыФормы.Товары,ЭлементыФормы.КоманднаяПанельТовары.Кнопки.ПодменюЗаполнить); СоответствиеТЧ.Вставить(ЭлементыФормы.ВозвратнаяТара,ЭлементыФормы.КоманднаяПанельВозвратнаяТара.Кнопки.ПодменюЗаполнить); СоответствиеТЧ.Вставить(ЭлементыФормы.Услуги,ЭлементыФормы.КоманднаяПанельУслуги); УниверсальныеМеханизмы.СформироватьПодменюЗаполненияТЧ(мКнопкиЗаполненияТЧ,СоответствиеТЧ); КонецПроцедуры // Процедура вызывается для обработки программного изменения строки. // // Параметры // СтрокаТабличнойЧасти - строка ТЧ "Товары", изменение которой нужно обработать. // ИзмененнаяКолонка - название колонки, обработчик изменения которой необходимо вызвать. // Процедура ИзменениеСтрокиПрограммное(СтрокаТабличнойЧасти, ИзмененнаяКолонка) Экспорт ЭлементыФормы.Товары.ТекущаяСтрока = СтрокаТабличнойЧасти; Если ИзмененнаяКолонка = "Номенклатура" Тогда ПриИзмененииНоменклатурыТовары(ЭлементыФормы.Товары); ИначеЕсли ИзмененнаяКолонка = "Количество" Тогда ПриИзмененииКоличестваТовары(ЭлементыФормы.Товары); КонецЕсли; КонецПроцедуры // ИзменениеСтрокиПрограммное() // Процедура вызывается для обработки программного удалениия строки. // // Параметры // СтрокаТабличнойЧасти - строка ТЧ "Товары", которую нужно удалить. // Процедура УдалениеСтрокиПрограммное(СтрокаТабличнойЧасти) Экспорт ЭлементыФормы.Товары.ТекущаяСтрока = СтрокаТабличнойЧасти; ПередУдалениемТовары(ЭлементыФормы.Товары, Ложь); Товары.Удалить(СтрокаТабличнойЧасти); ПослеУдаленияТовары(ЭлементыФормы.Товары); КонецПроцедуры // УдалениеСтрокиПрограммное() // Функция формирует структуру параметров для поиска по строке контактного лица контрагента. // // Параметры // НЕТ // // Возвращаемое значение: // Структура имен и значений параметров // Функция ПолучитьСтруктуруПараметровПоискаПоСтроке() СтруктураПараметров = Новый Структура; Если ЗначениеЗаполнено(Контрагент) Тогда СтруктураПараметров.Вставить("Владелец", Контрагент); КонецЕсли; Возврат СтруктураПараметров; КонецФункции // ПолучитьСтруктуруПараметровПоискаПоСтроке()() // Процедура выполняет необходимые действия при изменении договора взаиморасчетов // с контрагентом. // Процедура ПриИнтерактивномИзмененииДоговора() ПриИзмененииДоговора(); МеханизмНумерацииОбъектов.ОбновитьПодсказкуКодНомерОбъекта(ЭтотОбъект.Метаданные(), ЭлементыФормы.ДействияФормы.Кнопки.Подменю, ЭлементыФормы.Номер); РаботаСДиалогами.СформироватьНадписьДолга(ДоговорКонтрагента, Ссылка, ЭлементыФормы.ИнфНадписьДолга, , Истина); УстановитьЗаголовкиПоДоговору(); // Услуги на комиссию не отдаем. мВидимостьЗакладкиУслуг = ДоговорКонтрагента.ВидДоговора <> Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером; УстановитьВидимость(); мТекущийДоговорКонтрагента = ДоговорКонтрагента; КонецПроцедуры // ПриИнтерактивномИзмененииДоговора() // Функция формирует список запросов для передачи в форму подбора. // // Параметры: // ТабличнаяЧасть - табличная часть, для подбора в которую формируется список запросов. // // Возвращаемое значение: // Список значений - список запросов. // Функция СформироватьСписокЗапросовДляПодбора(ТабличнаяЧасть) СписокЗапросов = Новый СписокЗначений(); СписокЗапросов.Добавить(,"По справочнику"); Если ТабличнаяЧасть = Товары ИЛИ ТабличнаяЧасть = ВозвратнаяТара Тогда СписокЗапросов.Добавить("ОстаткиНоменклатуры", "По остаткам номенклатуры"); Если ЗначениеЗаполнено(ТипЦен) ИЛИ (ЗначениеЗаполнено(ДоговорКонтрагента) И ДоговорКонтрагента.ВидУсловийДоговора = Перечисления.ВидыУсловийДоговоровВзаиморасчетов.СДополнительнымиУсловиями) Тогда СписокЗапросов.Добавить("РасходОстаткиИЦеныНоменклатуры", "По остаткам и ценам номенклатуры"); СписокЗапросов.Добавить("РасходЦеныНоменклатуры", "По ценам номенклатуры"); КонецЕсли; ИначеЕсли ТабличнаяЧасть = Услуги Тогда СписокЗапросов.Добавить("РасходУслуги", "По услугам предприятия"); Если ЗначениеЗаполнено(ТипЦен) ИЛИ (ЗначениеЗаполнено(ДоговорКонтрагента) И ДоговорКонтрагента.ВидУсловийДоговора = Перечисления.ВидыУсловийДоговоровВзаиморасчетов.СДополнительнымиУсловиями) Тогда СписокЗапросов.Добавить("РасходЦеныУслуг", "По ценам и услугам предприятия"); КонецЕсли; КонецЕсли; Возврат СписокЗапросов; КонецФункции // СформироватьСписокЗапросовДляПодбора() // Процедура обновляет параметры в форме подбора, если она открыта. // // Параметры: // Реквизит - измененный реквизит. // Процедура ОбновитьФормуПодбора(Реквизит) РаботаСДиалогами.ОбновитьПараметрыИФормуПодбора(ЭтотОбъект, ЭтаФорма, Реквизит); КонецПроцедуры // ОбновитьФормуПодбора() // Процедура вызывает сервисный механизм для подбора номеклатуры в табличную часть. // // Параметры: // ТабличнаяЧасть - табличная часть, в которую осуществляется подбор. // Процедура ДействиеПодбор(ТабличнаяЧасть) Перем Команда, Валюта; ЕстьЦена = мМожноМенятьЦенуВДокументе; ЕстьСерия = ТабличнаяЧасть = Товары И ЗначениеЗаполнено(ДоговорКонтрагента) И ДоговорКонтрагента.ОбособленныйУчетТоваровПоЗаказамПокупателей И мРезервироватьПоСериям И (ЗначениеЗаполнено(СкладГруппа) и ТипЗнч(СкладГруппа)=Тип("СправочникСсылка.Склады")); СкрыватьХарактеристику = Ложь; Валюта = ВалютаДокумента; ПодбиратьУслуги = Ложь; Если ТабличнаяЧасть = Товары Тогда Команда = "ПодборВТабличнуюЧастьТовары"; ИмяТабличнойЧасти = "Товары"; ИначеЕсли ТабличнаяЧасть = Услуги Тогда Команда = "ПодборВТабличнуюЧастьУслуги"; ИмяТабличнойЧасти = "Услуги"; СкрыватьХарактеристику = Истина; ПодбиратьУслуги = Истина; ИначеЕсли ТабличнаяЧасть = ВозвратнаяТара Тогда Команда = "ПодборВТабличнуюЧастьВозвратнаяТара"; ИмяТабличнойЧасти = "Тара"; КонецЕсли; СписокВидовПодбора = СформироватьСписокЗапросовДляПодбора(ТабличнаяЧасть); ПредставлениеДок = Метаданные().Представление(); СтруктураПараметровПодбора = Новый Структура(); СтруктураПараметровПодбора.Вставить("Команда" , Команда); СтруктураПараметровПодбора.Вставить("СписокВидовПодбора" , СписокВидовПодбора); // Параметры запросов. ВременнаяДатаРасчетов = ?(НачалоДня(Дата) = НачалоДня(ТекущаяДата()), Неопределено, Дата); СтруктураПараметровПодбора.Вставить("ДатаРасчетов" , ВременнаяДатаРасчетов); СтруктураПараметровПодбора.Вставить("Склад" , СкладГруппа); СтруктураПараметровПодбора.Вставить("ТипЦен" , ТипЦен); СтруктураПараметровПодбора.Вставить("ДоговорКонтрагента" , ДоговорКонтрагента); СтруктураПараметровПодбора.Вставить("Контрагент" , Контрагент); СтруктураПараметровПодбора.Вставить("Организация" , Организация); СтруктураПараметровПодбора.Вставить("ПодбиратьУслуги" , ПодбиратьУслуги); СтруктураПараметровПодбора.Вставить("СпособЗаполненияЦен" , Перечисления.СпособыЗаполненияЦен.ПоЦенамНоменклатуры); СтруктураПараметровПодбора.Вставить("ЕстьЦена" , ЕстьЦена); СтруктураПараметровПодбора.Вставить("ЕстьСерия" , ЕстьСерия); СтруктураПараметровПодбора.Вставить("ИспользоватьГруппуДоступности", Истина); СтруктураПараметровПодбора.Вставить("ВалютаДокумента" , Валюта); СтруктураПараметровПодбора.Вставить("СкрыватьХарактеристику" , СкрыватьХарактеристику); СтруктураПараметровПодбора.Вставить("Заголовок", "Подбор номенклатуры в документ " + ПредставлениеДок + " № " + Номер + " (" + ИмяТабличнойЧасти + ")"); СтруктураПараметровПодбора.Вставить("УсловиеПродаж" , УсловиеПродаж); РаботаСДиалогами.ОткрытьПодборНоменклатуры(ЭтаФорма, СтруктураПараметровПодбора, Метаданные()); КонецПроцедуры // ДействиеПодбор() // Производит заполнение документа переданными из формы подбора данными. // // Параметры: // ТабличнаяЧасть - табличная часть, в которую надо добавлять подобранную позицию номенклатуры; // ЗначениеВыбора - структура, содержащая параметры подбора. // Процедура ОбработкаПодбора(ТабличнаяЧасть, ЗначениеВыбора) Экспорт Перем Номенклатура; Если РаботаСДиалогами.ПроверитьЧтоКачествоВСтруктуреПодбораНеУдовлетворяетУсловиямПодбора(ЗначениеВыбора, Истина) Тогда Возврат; КонецЕсли; // Получим параметры подбора из структуры подбора. ЗначениеВыбора.Свойство("Номенклатура", Номенклатура); Если (ТабличнаяЧасть = Товары ИЛИ ТабличнаяЧасть = ВозвратнаяТара) И Номенклатура.Услуга Тогда Предупреждение("В данном контексте услуги не подбираются!"); Возврат; ИначеЕсли ТабличнаяЧасть = Услуги И Не Номенклатура.Услуга Тогда Предупреждение("В данном контексте товары не подбираются!"); Возврат; КонецЕсли; СтрокаТабличнойЧасти = ЗаполнитьТабличнуюЧастьИзПодбора(ТабличнаяЧасть, ЗначениеВыбора); Если ТабличнаяЧасть = Товары Тогда Если СтрокаТабличнойЧасти.СерияНоменклатуры <> Справочники.СерииНоменклатуры.ПустаяСсылка() Тогда СтрокаТабличнойЧАсти.Размещение = СкладГруппа; КонецЕсли; КонецЕсли; Если (ТабличнаяЧасть = Товары ИЛИ ТабличнаяЧасть = Услуги) Тогда РаботаСДиалогами.СформироватьНадписьИтоговоеОтклонениеОтПлановойСебестоимости(ЭлементыФормы.ИнфНадписьИтоговоеОтклонениеОтПлановойСебестоимости, ЭтотОбъект); КонецЕсли; ТабличнаяЧастьИмя = ?(ТабличнаяЧасть = Товары, "Товары","ВозвратнаяТара"); ЭлементыФормы[ТабличнаяЧастьИмя].ТекущаяСтрока = СтрокаТабличнойЧасти; ЭлементыФормы[ТабличнаяЧастьИмя].ТекущаяКолонка = ЭлементыФормы[ТабличнаяЧастьИмя].Колонки["Количество"]; КонецПроцедуры // ОбработкаПодбора() // Производит заполнение и установку необходимых полей при изменении характеристики товара в табличной части. // Процедура ПриИзмененииХарактеристикиНоменклатурыТоваров(СтрокаТабличнойЧасти) // Заполняем реквизиты табличной части. ОбработкаТабличныхЧастей.ЗаполнитьЕдиницуЦенуПродажиТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета); // Состав набора зависит от его характеристики. УправлениеЗапасами.ДобавитьСоставНабора(СтрокаТабличнойЧасти, ЭтотОбъект); КонецПроцедуры // ПриИзмененииХарактеристикиНоменклатурыТоваров() // Обновляет текущее значение учетной политики розничная торговля облагается ЕНВД. // Процедура ПриИзмененииОблагаетсяЕНВД(РежимВызова = "") Если НЕ ЗначениеЗаполнено(РежимВызова) Тогда мОрганизацияЯвляетсяПлательщикомЕНВД = ОбщегоНазначения.УчетнаяПолитикаНалоговыйУчет("ОрганизацияЯвляетсяПлательщикомЕНВД", Организация, Дата); мТекущаяОрганизация = Организация; Иначе РаботаСДиалогами.ПриИзмененииОрганизацияЯвляетсяПлательщикомЕНВД(ЭтотОбъект, РежимВызова, Услуги, мОрганизацияЯвляетсяПлательщикомЕНВД, мТекущаяОрганизация); КонецЕсли; КонецПроцедуры // ПриИзмененииОблагаетсяЕНВД() Процедура ОбработкаВыбораЗаполненияТабличнойЧастиИзТабличногоДокумента(ЗначениеВыбора) ТабличнаяЧасть = ЭтотОбъект[ЗначениеВыбора.ИмяТабличнойЧасти]; ТабличнаяЧасть.Очистить(); Для каждого Строка Из ЗначениеВыбора.ТаблицаДанных Цикл СтрокаТабличнойЧасти = ТабличнаяЧасть.Добавить(); СтрокаТабличнойЧасти.Номенклатура = Строка.Номенклатура; СтрокаТабличнойЧасти.Количество = Строка.Количество; Если ЗначениеВыбора.ИмяТабличнойЧасти = "Товары" Тогда ПриИзмененииНоменклатурыТоваров(СтрокаТабличнойЧасти); ОбработкаТабличныхЧастей.РассчитатьКоличествоМестТабЧасти(СтрокаТабличнойЧасти, ДокументОбъект); ИначеЕсли ЗначениеВыбора.ИмяТабличнойЧасти = "ВозвратнаяТара" Тогда // Выполнить общие действия для всех документов при изменении возвратной тары. ОбработкаТабличныхЧастей.ПриИзмененииВозвратнойТарыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); // Заполнить реквизиты табличной части. ОбработкаТабличныхЧастей.ЗаполнитьЦенуВозвратнойТарыТабЧастиПоступление(СтрокаТабличнойЧасти, ЭтотОбъект, мВалютаРегламентированногоУчета); // Рассчитать реквизиты табличной части. ОбработкаТабличныхЧастей.РассчитатьСуммуВозвратнойТарыТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект); КонецЕсли; КонецЦикла; КонецПроцедуры // ОбработкаВыбораЗаполненияТабличнойЧастиИзТабличногоДокумента() // Очищает значение реквизита в табличных частях "Товары", "Возвратная тара". // Процедура ОчиститьРеквизитВТабличнойЧасти(ТабличнаяЧасть, ИмяРеквизита) // Очистим значения в строках Для Каждого Строка Из ТабличнаяЧасть Цикл Строка[ИмяРеквизита] = Неопределено; КонецЦикла; КонецПроцедуры // Процедура очищает колонку "Размещение" табличной части. // Процедура ОчиститьРазмещениеВТабличнойЧасти(ТабличнаяЧасть) ОчиститьРеквизитВТабличнойЧасти(ТабличнаяЧасть, "Размещение"); Если ТабличнаяЧасть = Товары Тогда Если мКолонкиТовары.СерияНоменклатуры.Видимость Тогда ОчиститьРеквизитВТабличнойЧасти(ТабличнаяЧасть, "СерияНоменклатуры"); КонецЕсли; ТабличнаяЧасть.Свернуть("Номенклатура, ХарактеристикаНоменклатуры, Цена, СтавкаНДС, ЕдиницаИзмерения, ЕдиницаИзмеренияМест, Коэффициент, ПроцентСкидкиНаценки, ПроцентАвтоматическихСкидок, УсловиеАвтоматическойСкидки, ЗначениеУсловияАвтоматическойСкидки, ПлановаяСебестоимость, КлючСтроки", "Количество, КоличествоМест, Сумма, СуммаНДС"); ИначеЕсли ТабличнаяЧасть = ВозвратнаяТара Тогда ТабличнаяЧасть.Свернуть("Номенклатура, Цена", "Количество, Сумма"); КонецЕсли; КонецПроцедуры // Выполняет необходимые действия при изменении вида склада. // Процедура ПриИзмененииВидаСклада() // Определим текущий вид склада Если ЗначениеЗаполнено(СкладГруппа) И ТипЗнч(СкладГруппа) = Тип("СправочникСсылка.Склады") Тогда ВидСклада = СкладГруппа.ВидСклада; Иначе ВидСклада = Перечисления.ВидыСкладов.Оптовый; КонецЕсли; // Оформление колонок таблицы ФлагАвтоОтметкиНезаполненого = Истина; Если (ВидСклада = Перечисления.ВидыСкладов.Оптовый ИЛИ НЕ ЗначениеЗаполнено(ВидСклада)) И мРазрешитьНулевыеЦеныВОпте Тогда ФлагАвтоОтметкиНезаполненого = Ложь; ИначеЕсли ВидСклада = Перечисления.ВидыСкладов.Розничный И мРазрешитьНулевыеЦеныВРознице Тогда ФлагАвтоОтметкиНезаполненого = Ложь; КонецЕсли; мКолонкиТовары.Сумма.АвтоОтметкаНезаполненного = ФлагАвтоОтметкиНезаполненого; мКолонкиТовары.Цена.АвтоОтметкаНезаполненного = ФлагАвтоОтметкиНезаполненого; мКолонкиВозвратнаяТара.Сумма.АвтоОтметкаНезаполненного = ФлагАвтоОтметкиНезаполненого; мКолонкиВозвратнаяТара.Цена.АвтоОтметкаНезаполненного = ФлагАвтоОтметкиНезаполненого; КонецПроцедуры // ПриИзмененииВидаСклада() //////////////////////////////////////////////////////////////////////////////// // ПРОЦЕДУРЫ И ФУНКЦИИ ДЛЯ УПРАВЛЕНИЯ ВНЕШНИМ ВИДОМ ФОРМЫ // Устанавливает соответстующие свойства поля ввода цены при изменении // номенклатуры в текущей строке табличной части. // // Параметры: // Номенклатура - ссылка на справочник, элемент номенклатуры, для которого будем устанавливать цену // Процедура УстановитьСвойстваПоляВводаЦены() ТекущаяСтрока = ЭлементыФормы.Товары.ТекущиеДанные; ЭлементУправления = мКолонкиТовары.Цена.ЭлементУправления; ЭлементУправления.КнопкаСпискаВыбора = Ложь; КонецПроцедуры // УстановитьСвойстваПоляВводаЦены() // Процедура устанавливает доступность кнопки "Заполнить и провести". Кнопка доступна, // если документ - внешний заказ, его дата совпадает с текущей и установлен хотя бы один // из флагов Авторазмещение или Авторезервирование. // // Параметры: // Нет. // Процедура УстановитьДоступностьКнопкиЗаполнитьИПровести() ЭлементыФормы.ДействияФормы.Кнопки.ПодменюЗаполнитьИПровести.Доступность = НачалоДня(Дата) = НачалоДня(ТекущаяДата()); КонецПроцедуры // УстановитьДоступностьКнопкиЗаполнитьИПровести // Процедура устанавливает доступность кнопки "СоздатьРеализацию". Кнопка доступна, // если документ уже был записан. // // Параметры: // Нет. // Процедура УстановитьДоступностьКнопкиДействиеСоздатьРеализацию() ДоступностьСозданияРеализации = НЕ Модифицированность() И не ЭтаФорма.ТолькоПросмотр; ЭлементыФормы.ДействияФормы.Кнопки.ДействиеСоздатьРеализацию.Доступность = ДоступностьСозданияРеализации; КонецПроцедуры // УстановитьДоступностьКнопкиДействиеСоздатьРеализацию() // Процедура устанавливает видимость для тех колонок в табличной части // "Товары", видимость которых определяется реквизитами документа. // // Параметры: // Нет. // Процедура УстановитьВидимость() // Колонки налога показываем только тогда, когда его учитываем. Если УчитыватьНДС <> мКолонкиТовары.СтавкаНДС.Видимость Тогда ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СтавкаНДС, УчитыватьНДС); КонецЕсли; Если УчитыватьНДС <> мКолонкиТовары.СуммаНДС.Видимость Тогда ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СуммаНДС, УчитыватьНДС); КонецЕсли; Если УчитыватьНДС <> мКолонкиУслуги.СтавкаНДС.Видимость Тогда ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиУслуги.СтавкаНДС, УчитыватьНДС); КонецЕсли; Если УчитыватьНДС <> мКолонкиУслуги.СуммаНДС.Видимость Тогда ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиУслуги.СуммаНДС, УчитыватьНДС); КонецЕсли; // Управление доступностью элементов формы в зависимости от вида операции КнопкиКоманднойПанели = ЭлементыФормы.ДействияФормы.Кнопки; ТолькоПросмотр = ЭтаФорма.ТолькоПросмотр; //для кнопок с неустановленным признаком "ИзменяетДанные" явно установим доступность //для кнопок Анализ и СоздатьРеализацию - есть отдельная логика, которая зависит еще и от других параметров КнопкиКоманднойПанели.Файлы1.Доступность = не ТолькоПросмотр; Если ЭлементыФормы.ОсновнаяПанель.Страницы.Тара.Доступность Тогда ЭлементыФормы.ОсновнаяПанель.Страницы.Тара.Видимость = мИспользоватьТару; КонецЕсли; ОбособленныйУчет = ЗначениеЗаполнено(ДоговорКонтрагента) И ДоговорКонтрагента.ОбособленныйУчетТоваровПоЗаказамПокупателей; ВидимостьСерии = мРезервироватьПоСериям И ОбособленныйУчет; ОбработкаТабличныхЧастей.УстановитьВидимостьКолонкиТабЧасти(мКолонкиТовары.СерияНоменклатуры, ВидимостьСерии); мКолонкиТовары.Размещение.ИзменятьВидимость = истина; ЭлементыФормы.ОсновнаяПанель.Страницы.Услуги.Видимость = мВидимостьЗакладкиУслуг; КонецПроцедуры // УстановитьВидимость() // Процедура устанавливает заголовки по выбранному договору для: // - элемента формы НадписьСуммаВзаиморасчетов. // // Параметры: // Нет. // Процедура УстановитьЗаголовкиПоДоговору() РаботаСДиалогами.УстановитьНадписьСуммыВзаиморасчетов(ЭтотОбъект, ЭтаФорма); КонецПроцедуры // УстановитьЗаголовкиПоДоговору() // Процедура формирует текст в информационной надписи об итогах документа. // // Параметры: // Нет. // Процедура ОбновитьПодвал() // При изменении данных обновим суммы в подвале. СуммаВсего = ПолучитьСуммуСНДС(); СуммаВсегоНДС = ПолучитьСуммуНДС(); ЭлементыФормы.Всего.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсего); ЭлементыФормы.ВсегоНДС.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсегоНДС); //+ СуммаВсегоТовары = ПолучитьСуммуСНДСТовары(); ВсегоНДСТовары = ПолучитьСуммуНДСТовары(); ЭлементыФормы.ВсегоТовары.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсегоТовары); ЭлементыФормы.ВсегоНДСТовары.Значение = ОбщегоНазначения.ФорматСумм(ВсегоНДСТовары); СуммаВсегоМатериалы = ПолучитьСуммуСНДСМатериалы(); ВсегоНДСМатериалы = ПолучитьСуммуНДСМатериалы(); ЭлементыФормы.ВсегоМатериалы.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсегоМатериалы); ЭлементыФормы.ВсегоНДСМатериалы.Значение = ОбщегоНазначения.ФорматСумм(ВсегоНДСМатериалы); СуммаВсегоУслуги = ПолучитьСуммуСНДСУслуги(); ВсегоНДСУслуги = ПолучитьСуммуНДСУслуги(); ЭлементыФормы.ВсегоУслуги.Значение = ОбщегоНазначения.ФорматСумм(СуммаВсегоУслуги); ЭлементыФормы.ВсегоНДСУслуги.Значение = ОбщегоНазначения.ФорматСумм(ВсегоНДСУслуги); //- ВременнаяСтрока = ""; Если (ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента)) И (ДокументОбъект.ВалютаДокумента <> мВалютаРегламентированногоУчета) Тогда ВременнаяСтрока = ВременнаяСтрока + ЗаполнениеДокументов.КратностьДокумента(ДокументОбъект, мВалютаРегламентированногоУчета) + ДокументОбъект.ВалютаДокумента + " = " + ЗаполнениеДокументов.КурсДокумента(ДокументОбъект, мВалютаРегламентированногоУчета) + мВалютаРегламентированногоУчета + ", "; КонецЕсли; Если ЗначениеЗаполнено(ДокументОбъект.ТипЦен) Тогда ВременнаяСтрока = ВременнаяСтрока + "Тип цен: " + ДокументОбъект.ТипЦен; Иначе ВременнаяСтрока = ВременнаяСтрока + "Тип цен: Не заполнено!"; КонецЕсли; Если ЗначениеЗаполнено(ДокументОбъект.УсловиеПродаж) Тогда ВременнаяСтрока = ВременнаяСтрока + ", Условие продаж: " + ДокументОбъект.УсловиеПродаж; КонецЕсли; ЭлементыФормы.ИнфНадписьТоварыИтоги.Заголовок = ВременнаяСтрока; Если НЕ ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента) Тогда ЭлементыФормы.НадписьВсего.Заголовок = "Всего (<>):"; Иначе ЭлементыФормы.НадписьВсего.Заголовок = "Всего (" + СокрЛП(ДокументОбъект.ВалютаДокумента) +"):"; КонецЕсли; //+ Если НЕ ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента) Тогда ЭлементыФормы.НадписьВсегоТовары.Заголовок = "Всего товары (<>):"; Иначе ЭлементыФормы.НадписьВсегоТовары.Заголовок = "Всего товары (" + СокрЛП(ДокументОбъект.ВалютаДокумента) +"):"; КонецЕсли; Если НЕ ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента) Тогда ЭлементыФормы.НадписьВсегоМатериалы.Заголовок = "Всего материалы (<>):"; Иначе ЭлементыФормы.НадписьВсегоМатериалы.Заголовок = "Всего материалы (" + СокрЛП(ДокументОбъект.ВалютаДокумента) +"):"; КонецЕсли; Если НЕ ЗначениеЗаполнено(ДокументОбъект.ВалютаДокумента) |
|||
27
Sanekaa
17.09.15
✎
18:06
|
(25) что делать то?
|
|||
28
daniel63
17.09.15
✎
18:06
|
думаю можно через тимвювер показать
|
|||
29
Sanekaa
17.09.15
✎
18:24
|
(28) так в чем причина?
|
|||
30
daniel63
17.09.15
✎
18:37
|
в скайп alexuryn пишите, покажу как увидеть ошибку.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |