|
v7: Вопрос | ☑ | ||
---|---|---|---|---|
0
tdutybq
02.08.12
✎
06:03
|
Подскажите пожалуйста как добавить буквы к коду, есть Справочник.Товары, код поставлен текстовый. Пытался написать
Процедура Справочник.Товары() Код = УстановитьНовыйНомер(Лев("Б",7)); КонецПроцедуры Но ничего не вышло, если честно я не очень силён в этом, но очень надо. |
|||
1
DenLaDen
02.08.12
✎
06:11
|
УстановитьНовыйНомер - это для документов
УстановитьНовыйКод - это для справочников |
|||
2
big
02.08.12
✎
06:11
|
что такое "Б" и что такое 7 ?
БуковкиНомера = "АБВ" А вообще надо примерно вот так: УстановитьНовыйНомер(БуковкиНомера); или же так: УстановитьНовыйНомер("АБВ"); |
|||
3
Andrewww
02.08.12
✎
06:13
|
И что такое "Справочник.Товары()"?
|
|||
4
Рэйв
02.08.12
✎
06:13
|
Код="Буква"+Код;
Но только если он не числовой и хватает разрядности |
|||
5
skunk
02.08.12
✎
06:32
|
тему надо в юмор перемещать ... как мне кажеться ... ихмается мне будет сейчас закос под свету семоненко
|
|||
6
Светлый Гений
02.08.12
✎
06:37
|
(0)На работу, что ли устраиваешься?
|
|||
7
Рэйв
02.08.12
✎
06:38
|
но
Процедура Справочник.Товары() - это креативно конечно... |
|||
8
tdutybq
02.08.12
✎
08:41
|
Дело в том, что база самописная, под конкретную организацию, Артикул в ней строковый, но идет отображение кода, его поменял на строковый, но застивить ее дописывать к коду ещё и букву "Префикс" не выходит. Надо подключить к коду букву, а потом обработкой эта бука добавиться ко всему артиклю в справочнике. Обработка есть но букву подцепить не выходит.
|
|||
9
Andrewww
02.08.12
✎
08:59
|
(8), так выше же написали что нужно использовать "УстановитьНовыйКод()". Номер - это атрибут документов, но не элементов справочников.
|
|||
10
Рэйв
02.08.12
✎
09:03
|
да что вы с УстановитьНовыйКод()?
Он же ему букву прибавит, а код то новый сгенерит. Ему же скорее всего надо просто к существующему добавить. |
|||
11
tdutybq
02.08.12
✎
09:05
|
Да именно.
|
|||
12
пипец
02.08.12
✎
09:09
|
тогда просто
Объект.код=(Лев("Б",7)) |
|||
13
пипец
02.08.12
✎
09:10
|
ну и
Объект.Записать() |
|||
14
Ork
02.08.12
✎
09:11
|
После вот этого :
Процедура Справочник.Товары() и Лев("Б",7) приходит осознание, что самым простым будет сделать за ТС его работу. Пытаться что либо объяснять человеку без базовых понятий - получится разговор немого с глухим. |
|||
15
Ork
02.08.12
✎
09:12
|
(12) Как вы считаете : что получится на выходе вот этого вот :
Лев("Б",7)? Давайте устроим голосовалку. 1. "Б" 2. "БББББББ" |
|||
16
chief accountant
02.08.12
✎
09:14
|
(11) учоис возьми с ИТС и расслабься
|
|||
17
Ork
02.08.12
✎
09:14
|
+(15) И только после этого будем думать ДляНафигаОноНужно? Имеетли место быть, что
Код = УстановитьНовыйНомер(Лев("Б",7)); вызывается в форме элемента? И прочая... и прочая... и прочая... |
|||
18
chief accountant
02.08.12
✎
09:16
|
16+ упс, для справочников он не умеет :(
|
|||
19
tdutybq
02.08.12
✎
09:17
|
Извините, но Вы немного ошибаетесь, кое какие понятия у меня есть, но в другом Тот язык немного поинтересней, но принцип одинаков правда практика давно была, а тут жена попросила, приходится бошку ломать да и заново всё вспоминать.
|
|||
20
пипец
02.08.12
✎
09:17
|
Перем Запрос, ТекстЗапроса, Таб;
//Создание объекта типа Запрос Запрос = СоздатьОбъект("Запрос"); ТекстЗапроса = "//{{ЗАПРОС(Сформировать) |Товары = Справочник.Товары.ТекущийЭлемент; |Функция Счётчик = Счётчик(); |Группировка Товары без групп; |"//}}ЗАПРОС ; // Если ошибка в запросе, то выход из процедуры Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда Возврат; КонецЕсли; ТЗ=СоздатьОбъект("ТаблицаЗначений"); Спр=СоздатьОбъект("Справочник.Товары"); Запрос.Выгрузить(ТЗ,0,0); ТЗ.ВыбратьСтроки(); Пока ТЗ.ПолучитьСтроку()>0 Цикл Спр.НайтиЭлемент(ТЗ.Товары); Спр.Код=(Лев("Б"+СокрЛП(Спр.Код),7));///тут много думать о уникальности кодов Спр.Записать(); КонецЦикла; |
|||
21
chief accountant
02.08.12
✎
09:17
|
18+ точнее умеет не для всех
|
|||
22
Ork
02.08.12
✎
09:19
|
ТС еще здесь?
Если еще интересно - отпишись. Я сегодня в лирическом настроении, помогу забесплатно. |
|||
23
tdutybq
02.08.12
✎
09:19
|
Был вот такой код Если (глБаза="Метиз") Тогда
// текКод=0;знРез=0; // текКод=Код; // спрРез=СоздатьОбъект("Справочник.РезервАртикула"); // спрРез.ВыбратьЭлементы(); // Пока спрРез.ПолучитьЭлемент()=1 Цикл // знРез=Макс(Число(знРез),спрРез.КонЗначение); // КонецЦикла; // Если Число(текКод)<=Число(знРез) Тогда // Код=Число(знРез)+1; // КонецЕсли; //иначеЕсли (глБаза="Окт") Тогда // текКод=0;Пишем=0; // текКод=Код; // спрРез=СоздатьОбъект("Справочник.РезервАртикула"); // спрРез.ВыбратьЭлементы(); // Пока спрРез.ПолучитьЭлемент()=1 Цикл // Если спрРез.КонЗначение<Число(текКод) Тогда // Продолжить; // КонецЕсли; // Если (спрРез.НачЗначение<=Число(текКод)) и (спрРез.КонЗначение>=Число(текКод)) Тогда // Пишем=1; // КонецЕсли; // КонецЦикла; // Если Число(Пишем)=0 Тогда // знРез=0; // спрРез.ВыбратьЭлементы(); // Пока спрРез.ПолучитьЭлемент()=1 Цикл // Если спрРез.КонЗначение<Число(текКод) Тогда // Продолжить; // КонецЕсли; // Если (спрРез.НачЗначение>Число(текКод)) Тогда // Код=спрРез.НачЗначение; // Пишем=1; // прервать; // КонецЕсли; // КонецЦикла; // КонецЕсли; // Если Число(Пишем)=0 Тогда // Предупреждение("Резервов для кода "+СокрЛП(текКод)+" не найдено, ввод невозможен!",2); // СтатусВозврата(0);Возврат; // КонецЕсли; //КонецЕсли; Его убрали теперь надо дописать букв к коду. КАК? |
|||
24
пипец
02.08.12
✎
09:19
|
(15) на выходе много что , главное что на входе ;))
|
|||
25
пипец
02.08.12
✎
09:20
|
(23) читай (20)
|
|||
26
Надсмотрщик
02.08.12
✎
09:22
|
(6) Прибавку к ЗП просит
|
|||
27
tdutybq
02.08.12
✎
09:23
|
Нет она сама работает.
|
|||
28
Ork
02.08.12
✎
09:24
|
(0) Для начала несколько вопроса:
1. Допустимо ли увеличить длину кода на 1? 2. Есть ли коды полностью состоящие из значащих символов? 3. Есть ли где-нибудь в конфигурации _программный_ код подобный приведенному в (23)? |
|||
29
tdutybq
02.08.12
✎
09:29
|
Да допустимо увеличить.
Есть значащие коды и этот код применен для Справочник.Товары. Именно там его и надо исправить. |
|||
30
tdutybq
02.08.12
✎
09:32
|
Мне помог один человек и всё было нормально, но его сейчас нет и когда буде не знаю, просто базу случайно снесли во и приходится восстанавливать самому.
|
|||
31
tdutybq
02.08.12
✎
09:35
|
Была дописана буква к коду, а затем обработкой поменен код во всём документе.
Вот обработка. Процедура Сформировать() Спр = СоздатьОбъект("Справочник.Товары"); Спр.ВыбратьЭлементы(); Сч = 1; Пока Спр.ПолучитьЭлемент() = 1 Цикл ТекКод = Спр.Код; Спр.Артикул = ТекКод; Спр.Записать(); Сообщить(""+спр.ТекущийЭлемент()+" "+Сч); Сч = Сч+1; КонецЦикла; КонецПроцедуры |
|||
32
Ork
02.08.12
✎
09:37
|
(29) Если допустимо увеличить - все достаточно просто (если не учитывать п.3 моего вопросника)
Порядок действий: 1. В конфигураторе увеличить длину кода на 1 символ. 2. Забецать внешнюю обработку (как есть) без добавления на форму элементов управления. (Хотя можно и подобавлять. Не суть). 3. КОд в процедуру выполнить(): Спр = СоздатьОбъект("Справочник.Товары"); //Следующая строка обязательна Спр.ПорядокНаименований(); Спр.ВыбратьЭлемент(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Спр.Код = "Б" + Прав(Спр.Код, СтрДлина(Спр.Код)-1); Спр.Записать(); КонецЦикла; |
|||
33
Ork
02.08.12
✎
09:40
|
+(32) Проделать на копии, проверить - отписаться сюда как ведет себя назначение артикулов элементам. Поскольку из описалова не понятно почему вопрос за "Код" справочника "Товар", а примеры кода за установку поля "артикул".
|
|||
34
tdutybq
02.08.12
✎
09:47
|
Извините, но это не помогло, А пример за артикул т.к. артикул берет код справочника.
|
|||
35
Ork
02.08.12
✎
09:48
|
(34) Не помогло это всмысле - не добавило букву к коду? Неверю.
|
|||
36
Светлый Гений
02.08.12
✎
09:48
|
(34)совсем ничего не произошло?
|
|||
37
Ork
02.08.12
✎
09:49
|
+(35) Если не отработало из за ошибки - сообщение об ошибке - сюда.
|
|||
38
tdutybq
02.08.12
✎
09:50
|
<<?>>Процедура Выполнить()
{Справочник.Товары.Форма.Модуль(979)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure') |
|||
39
Ork
02.08.12
✎
09:53
|
(38) Уровень подготовки понятен. )))
Тогда вот так должен выглядеть модуль во внешней обработке : Процедура Сформировать() Спр = СоздатьОбъект("Справочник.Товары"); //Следующая строка обязательна Спр.ПорядокНаименований(); Спр.ВыбратьЭлемент(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Спр.Код = "Б" + Прав(Спр.Код, СтрДлина(Спр.Код)-1); Спр.Записать(); КонецЦикла; КонецПроцедуры |
|||
40
tdutybq
02.08.12
✎
09:59
|
Я конечно не такой подготовленный как Вы, но если я пишу как Вы написали
Процедура Сформировать() Спр = СоздатьОбъект("Справочник.Товары"); //Следующая строка обязательна Спр.ПорядокНаименований(); Спр.ВыбратьЭлемент(); Пока Спр.ПолучитьЭлемент() = 1 Цикл Спр.Код = "Б" + Прав(Спр.Код, СтрДлина(Спр.Код)-1); Спр.Записать(); КонецЦикла; КонецПроцедуры А мне пишет что <<?>>Процедура Сформировать() {Справочник.Товары.Форма.Модуль(979)}: Ожидается ключевое слово 'КонецПроцедуры' ('EndProcedure') Значит какая то ошибка в Коде. |
|||
41
Светлый Гений
02.08.12
✎
10:00
|
(40)А весь код модуля можешь предоставить?
|
|||
42
Рэйв
02.08.12
✎
10:01
|
(40)Ошибка гдето выше.
Смотри свой код который до этого |
|||
43
Рэйв
02.08.12
✎
10:01
|
Возможно ты процедуру вообще в середину другой воткнул:-)
|
|||
44
Ork
02.08.12
✎
10:01
|
(40) Я специально для ваМ несколько раз написал, весь код - в МОДУЛЬ ВНЕШНЕЙ ОБРАБОТКИ.
Ни в коем случае не трогая модуль справочника Товары. Тем более в 979 его строке. |
|||
45
tdutybq
02.08.12
✎
10:06
|
Баз была написана ещё в 1998г, и человек который мне помогал был очень удевлён написанному.
Перем маСтараяОсновная,НовыйЗл,БылоНаименование; Перем мсКодОсновной,ЗнакПроцента,мчРежим,былиПФ; Перем СуммаРасчетная,СуммаОтправная,Результат; Перем мфИзменениеОсновной,КомплектыБыли,бБазовая,бапТип; Перем мфлОсновнаяЗаписана,бКоэффициент,бЕдиницаИзмерения; перем ОбщРег,РегПост,ВремТаблОстатки,бКоличество,бКоличествоБазовое; перем бтабКом,СохраняемЗначения,ФлагКВыполнению; перем бНаименование; Функция печЗаказ() Если Заказ=1 Тогда Возврат "Заказ"; КонецЕсли; Возврат ""; КонецФункции Функция печСертификация() Если ГруппаСертификации.Выбран()=1 Тогда Если ГруппаСертификации=Перечисление.ВариантСертификации.ГруппаСертификации_1 Тогда Возврат "стальные строительные конструкции"; иначеЕсли ГруппаСертификации=Перечисление.ВариантСертификации.ГруппаСертификации_2 Тогда Возврат "арматурные и закладные изделия сварные"; иначеЕсли ГруппаСертификации=Перечисление.ВариантСертификации.ГруппаСертификации_3 Тогда Возврат "сетки арматурные сварные"; иначеЕсли ГруппаСертификации=Перечисление.ВариантСертификации.ГруппаСертификации_4 Тогда Возврат "анкера и болты фундаментные"; иначеЕсли ГруппаСертификации=Перечисление.ВариантСертификации.ГруппаСертификации_5 Тогда Возврат "балки двутавровые сварные с параллельными гранями полок"; КонецЕсли; КонецЕсли; Возврат ""; КонецФункции Функция РасчитатьДЕспр(перТовар) Если (перТовар.Базовая.Выбран()=1) Тогда Если перТовар.Коэффициент>0 тогда Если (перТовар.Фиксировать=1) и (перТовар.Базовая=едВеса) Тогда Если перТовар.Коэффициент_Ф>0 Тогда Возврат (1/перТовар.Коэффициент_Ф); иначе Возврат перТовар.Коэффициент; КонецЕсли; иначе Возврат перТовар.Коэффициент; КонецЕсли; КонецЕсли; КонецЕсли; Возврат 1; КонецФункции Процедура ИнфНемера() Если Выбран()=1 Тогда ОткрытьФорму("Справочник.ДеловаяНемера",ТекущийЭлемент()); КонецЕсли; КонецПроцедуры //_____________________________________________________________________________ Процедура выборТипа() Если апТип=типРабота тогда ЕдиницаИзмерения=Константа.ЕдиницаЧасов; КонецЕсли; КонецПроцедуры //выборТипа Функция печЭлемент() Если Форма.Закладки.ТекущаяСтрока()=4 Тогда Если КЭлемент.Выбран()=0 Тогда Форма.кнПересчет.Доступность(0); Форма.кнОчисткиЭлемента.Доступность(0); Форма.кнОсмотраЭлемента.Доступность(0); иначе Форма.кнПересчет.Доступность(1); Форма.кнОчисткиЭлемента.Доступность(1); Форма.кнОсмотраЭлемента.Доступность(1); Возврат СокрЛП(КЭлемент.Наименование); КонецЕсли; КонецЕсли; Возврат ""; КонецФункции Функция ДоступностьДат() Форма.печСебестоимость.Заголовок("План.стоимость:"); Форма.Стоимость.Видимость(0); Форма.печСебестоимость.Видимость(0); Форма.кнИст_Стоим.Видимость(0); Если не(Базовая=едВеса) Тогда Форма.Фиксировать.Видимость(0); Форма.печКэф_3.Видимость(0); Если Фиксировать=1 Тогда Фиксировать=0; КонецЕсли; иначе Если Форма.Закладки.ТекущаяСтрока()=1 Тогда Форма.Фиксировать.Видимость(1); Форма.печКэф_3.Видимость(1); иначе Форма.Фиксировать.Видимость(0); Форма.печКэф_3.Видимость(0); КонецЕсли; КонецЕсли; Если апТип=типПолуФабрикат Тогда Форма.печРазмер3.Заголовок("Длина реза (мм): "); Если Форма.Закладки.ТекущаяСтрока()=1 Тогда Форма.печРазмер3.Видимость(1); Форма.Длина.Видимость(1); Форма.печРазмер2.Видимость(1); Форма.Ширина.Видимость(1); иначе Форма.печРазмер3.Видимость(0); Форма.Длина.Видимость(0); Форма.печРазмер2.Видимость(0); Форма.Ширина.Видимость(0); КонецЕсли; иначе Форма.печРазмер3.Заголовок("3 размер (длина) мм:"); Если (апТип=типУслуга) или (апТип=типРабота) Тогда Форма.печРазмер3.Видимость(0); Форма.Длина.Видимость(0); Форма.печРазмер2.Видимость(0); Форма.Ширина.Видимость(0); КонецЕсли; КонецЕсли; Если (глЗаказ(Контекст)=1) или (апТип=типУслуга) или (апТип=типРабота) Тогда Форма.рамкаРазмеры.Видимость(0); Если глЗаказ(Контекст)=0 Тогда Форма.печРазмер.Видимость(0); Форма.печТВес.Видимость(0); Форма.Высота.Видимость(0); Форма.Вес.Видимость(0); КонецЕсли; Форма.ВарРасДЕ.Видимость(0); Форма.ВарРасДЕ_2.Видимость(0); Форма.ВарРасДЕ_3.Видимость(0); Форма.печРедакция_1.Видимость(0); Форма.печРедакция_2.Видимость(0); Форма.печРедакция_3.Видимость(0); Форма.ПроцентОтходов.Видимость(0); Форма.печСклад.Видимость(0); Форма.Склад.Видимость(0); Форма.печОтходы.Видимость(0); Форма.колРасценок.Видимость(0); Форма.печРасценок_1.Видимость(0); Форма.печРасценок_2.Видимость(0); Форма.печРасценок_3.Видимость(0); Форма.печРасценок_4.Видимость(0); Форма.ПроцентНаценки_1.Видимость(0); Форма.ПроцентНаценки_2.Видимость(0); Форма.ПроцентНаценки_3.Видимость(0); Форма.чТорговаяНаценка.Видимость(0); Форма.кнИст_411.Видимость(0); Форма.кнИст_42.Видимость(0); Форма.кнИст_43.Видимость(0); Форма.кнИст_4.Видимость(0); Форма.печРасценок_5.Видимость(0); Форма.печРасценок_6.Видимость(0); Форма.печРасценок_7.Видимость(0); Форма.печРасценок_8.Видимость(0); Форма.печАртикул.Видимость(0); Форма.Код.Видимость(0); Форма.кнТеория.Видимость(0); Форма.кнРасчет.Видимость(0); Форма.печРасчет.Видимость(0); Форма.печРасчет2.Видимость(0); Форма.ВариантВеса.Видимость(0); Форма.ВариантВеса2.Видимость(0); Если (апТип=типУслуга) или (апТип=типРабота) Тогда Форма.КоличествоБазовоеФ.Видимость(0); Форма.Коэффициент_Ф.Видимость(0); Форма.Фиксировать.Видимость(0); Форма.Трансформер.Видимость(0); Форма.печТрансформер.Видимость(0); Если (апТип=типУслуга) и (Форма.Закладки.ТекущаяСтрока()=1) Тогда Форма.ГруппаПФ.Видимость(1); Форма.печУслугаМет.Видимость(1); иначе Форма.ГруппаПФ.Видимость(0); Форма.печУслугаМет.Видимость(0); КонецЕсли; Форма.печСебестоимость.Видимость(1); Если ЕдиницаИзмерения=Константа.ЕдиницаЧасов Тогда Форма.печСебестоимость.Заголовок("Стоим.часа с НДС:"); иначе Форма.печСебестоимость.Заголовок("Стоимость с НДС:"); КонецЕсли; Форма.Стоимость.Видимость(1); Форма.СуммаЗаказа.Видимость(0); Форма.кнДвижение.Видимость(0); Форма.кнСчета.Видимость(0); //Форма.табЦен.Видимость(0); //Форма.кнЦен_1.Видимость(0); //Форма.кнЦен_2.Видимость(0); //Форма.кнЦен_3.Видимость(0); //Форма.кнИст_1.Видимость(0); //Форма.печАктуальность.Видимость(0); //Форма.Д_ГраницаРасчетаОстатков.Видимость(0); //Форма.кнАктуальн.Видимость(0); Форма.печГост.Видимость(0); Форма.ГОСТ.Видимость(0); Форма.ВидПродукции.Видимость(0); Форма.печВидПродукции.Видимость(0); Форма.печЦена.Видимость(0); Форма.ЦенаЗа.Видимость(0); Форма.Коэффициент_4.Видимость(0); Форма.печКоэффициент_3.Видимость(0); Форма.печКоэффициент_4.Видимость(0); Форма.рамкаЕд.Видимость(0); Форма.печЯЕд.Видимость(0); Форма.печЯЕд1.Видимость(0); Форма.Счет.Видимость(0); Форма.ЕдВыгрузки.Видимость(0); Форма.ЕдВыгрузки_2.Видимость(0); Форма.печСклад.Видимость(0); Форма.Склад.Видимость(0); Форма.Стоимость.Видимость(1); Форма.кнЗапЦен.Видимость(0); Форма.кнИст_Стоим.Видимость(1); Форма.СтавкаНДС.Видимость(0); Форма.печНДС.Видимость(0); //Форма.Коэффициент.Видимость(0); //Форма.Коэффициент_1.Видимость(0); //Форма.печКоэффициент_2.Видимость(0); //Форма.рамкаКоэфф.Видимость(0); //Форма.удБазовая.Видимость(0); //Форма.Базовая.Видимость(0); Форма.РекЦена.Видимость(0); Форма.печРекЦена.Видимость(0); иначе Форма.ГруппаПФ.Видимость(0); Форма.печУслугаМет.Видимость(0); Форма.Стоимость.Видимость(0); Если Форма.Закладки.ТекущаяСтрока()=1 Тогда Форма.Трансформер.Видимость(1); Форма.печТрансформер.Видимость(1); Форма.кнЗапЦен.Видимость(1); Форма.табЦен.Видимость(1); Форма.кнЦен_1.Видимость(1); Форма.кнЦен_2.Видимость(1); Форма.кнЦен_3.Видимость(1); Форма.кнИст_1.Видимость(1); Форма.печАктуальность.Видимость(1); Форма.Д_ГраницаРасчетаОстатков.Видимость(1); Форма.кнАктуальн.Видимость(1); Форма.печГост.Видимость(1); Форма.ГОСТ.Видимость(1); Форма.ВидПродукции.Видимость(1); Форма.печВидПродукции.Видимость(1); Форма.печСебестоимость.Видимость(1); Форма.кнИст_Стоим.Видимость(1); КонецЕсли; Если Форма.Закладки.НайтиЗначение(2)=0 Тогда Форма.Закладки.ДобавитьЗначение(2,"Основные материалы"); КонецЕсли; Если Форма.Закладки.НайтиЗначение(3)=0 Тогда Форма.Закладки.ДобавитьЗначение(3,"Вспомогательные материалы"); КонецЕсли; Если Форма.Закладки.НайтиЗначение(4)=0 Тогда Форма.Закладки.ДобавитьЗначение(4,"Технол.процессы"); КонецЕсли; Если Форма.Закладки.НайтиЗначение(5)=0 Тогда Форма.Закладки.ДобавитьЗначение(5,"Сертификация"); КонецЕсли; КонецЕсли; Форма.кнПолуфабрикатов.Видимость(Число(былиПФ)); Если ГруппаПФ=1 Тогда Форма.кнКорректировки.Видимость(0); иначе Форма.кнКорректировки.Видимость(Число(былиПФ)); КонецЕсли; Если Число(ФлагКВыполнению)=1 Тогда Если Форма.Закладки.ТекущаяСтрока()=1 Тогда Форма.Наименование.Доступность(0); Форма.ЕдиницаИзмерения.Доступность(0); Форма.Базовая.Доступность(0); Форма.Коэффициент.Доступность(0); Форма.Фиксировать.Доступность(0); Форма.апТип.Доступность(0); Форма.Количество.Доступность(0); Если (Фиксировать=1) и (Базовая=едВеса) Тогда Форма.КоличествоБазовое.Видимость(0); Форма.Коэффициент_1.Видимость(0); Форма.КоличествоБазовоеФ.Видимость(1); Форма.Коэффициент_Ф.Видимость(1); Форма.КоличествоБазовоеФ.Доступность(0); Форма.Коэффициент_Ф.Доступность(0); иначе Форма.КоличествоБазовоеФ.Видимость(0); Форма.Коэффициент_Ф.Видимость(0); Форма.КоличествоБазовое.Видимость(1); Форма.Коэффициент_1.Видимость(1); Форма.КоличествоБазовое.Доступность(0); Форма.Коэффициент_1.Доступность(0); КонецЕсли; ИначеЕсли Форма.Закладки.ТекущаяСтрока()=2 Тогда Форма.подборПФ.Видимость(0); Форма.кнПодбора.Видимость(0); Форма.кноп_1.Видимость(0); Форма.кноп_2.Видимость(0); Форма.кноп_3.Видимость(0); Форма.кнКорректировки.Видимость(0); Форма.КоличествоБазовоеФ.Видимость(0); Форма.Коэффициент_Ф.Видимость(0); Форма.Фиксировать.Видимость(0); Форма.КоличествоБазовое.Видимость(0); Форма.Коэффициент_1.Видимость(0); ИначеЕсли Форма.Закладки.ТекущаяСтрока()=3 Тогда Форма.кноп_4.Видимость(0); Форма.кноп_5.Видимость(0); Форма.КоличествоБазовоеФ.Видимость(0); Форма.Коэффициент_Ф.Видимость(0); Форма.Фиксировать.Видимость(0); Форма.КоличествоБазовое.Видимость(0); Форма.Коэффициент_1.Видимость(0); ИначеЕсли Форма.Закладки.ТекущаяСтрока()=4 Тогда Форма.кноп_6.Видимость(0); Форма.кноп_7.Видимость(0); Форма.кноп_9.Видимость(0); Форма.КоличествоБазовоеФ.Видимость(0); Форма.Коэффициент_Ф.Видимость(0); Форма.Фиксировать.Видимость(0); Форма.КоличествоБазовое.Видимость(0); Форма.Коэффициент_1.Видимость(0); КонецЕсли; КонецЕсли; иначе Форма.ГруппаПФ.Видимость(0); Форма.печУслугаМет.Видимость(0); Форма.кнЗапЦен.Видимость(0); Если (апТип=типПродукция) или (глЗаказ(ТекущийЭлемент())=1) или (апТип=типПолуФабрикат) Тогда Если ГруппаПФ=1 Тогда Форма.кнКорректировки.Видимость(0); иначе Если Число(ФлагКВыполнению)=0 Тогда Форма.кнКорректировки.Видимость(1); КонецЕсли; КонецЕсли; Если Форма.Закладки.НайтиЗначение(2)=0 Тогда Форма.Закладки.ДобавитьЗначение(2,"Основные материалы"); КонецЕсли; Если Форма.Закладки.НайтиЗначение(3)=0 Тогда Форма.Закладки.ДобавитьЗначение(3,"Вспомогательные материалы"); КонецЕсли; Если Форма.Закладки.НайтиЗначение(4)=0 Тогда Форма.Закладки.ДобавитьЗначение(4,"Технол.процессы"); КонецЕсли; Если Форма.Закладки.НайтиЗначение(5)=0 Тогда Форма.Закладки.ДобавитьЗначение(5,"Сертификация"); КонецЕсли; Форма.ВидПродукции.Доступность(1); Форма.печВидПродукции.Доступность(1); Форма.кнПолуфабрикатов.Видимость(Число(былиПФ)); Если ГруппаПФ=1 Тогда Форма.кнКорректировки.Видимость(0); иначе Форма.кнКорректировки.Видимость(Число(былиПФ)); КонецЕсли; Если Форма.Закладки.ТекущаяСтрока()=1 Тогда Форма.СуммаЗаказа.Видимость(1); Форма.печСебестоимость.Видимость(1); Форма.печРекЦена.Видимость(1); Форма.РекЦена.Видимость(1); Форма.кнИст_Стоим.Видимость(1); Форма.кнЗапЦен.Видимость(1); Если (Фиксировать=1) и (Базовая=едВеса) Тогда Форма.Коэффициент_1.Видимость(0); Форма.Коэффициент_Ф.Видимость(1); иначе Форма.Коэффициент_Ф.Видимость(0); Форма.Коэффициент_1.Видимость(1); КонецЕсли; иначе Форма.Коэффициент_1.Видимость(0); Форма.Коэффициент_Ф.Видимость(0); Форма.СуммаЗаказа.Видимость(0); Форма.печСебестоимость.Видимость(0); Форма.печРекЦена.Видимость(0); Форма.РекЦена.Видимость(0); Форма.кнИст_Стоим.Видимость(0); Форма.кнЗапЦен.Видимость(0); КонецЕсли; иначе Форма.кнКоличества.Видимость(0); Форма.СуммаЗаказа.Видимость(0); Форма.печСебестоимость.Видимость(0); Форма.печРекЦена.Видимость(0); Форма.РекЦена.Видимость(0); Форма.кнИст_Стоим.Видимость(0); Форма.кнЗапЦен.Видимость(0); Форма.кнКорректировки.Видимость(0); Форма.ВидПродукции.Доступность(0); Форма.печВидПродукции.Доступность(0); КонецЕсли; Если Форма.Закладки.ТекущаяСтрока()=1 Тогда Форма.печГост.Видимость(1); Форма.ГОСТ.Видимость(1); Форма.печАртикул.Видимость(1); Форма.Код.Видимость(1); иначе Форма.печГост.Видимость(0); Форма.ГОСТ.Видимость(0); Форма.печАртикул.Видимость(0); Форма.Код.Видимость(0); КонецЕсли; Если (Базовая.Выбран()=1) и (Форма.Закладки.ТекущаяСтрока()=1) Тогда Форма.печКоэффициент_2.Видимость(1); Форма.печКоэффициент_4.Видимость(1); Форма.Коэффициент_4.Видимость(1); Форма.Коэффициент.Доступность(1); Форма.печКоэффициент.Видимость(1); Форма.печКоэффициент_3.Видимость(1); Форма.ВарРасДЕ.Видимость(1); Форма.ВарРасДЕ_2.Видимость(1); Форма.ВарРасДЕ_3.Видимость(1); Форма.печРедакция_1.Видимость(1); Форма.печРедакция_2.Видимость(1); Форма.печРедакция_3.Видимость(1); Форма.печКоэффициент.Заголовок(СокрЛП(Базовая.ОКЕИ.Наименование)+" в 1 "+СокрЛП(ЕдиницаИзмерения.ОКЕИ.Наименование)); Форма.печКоэффициент_2.Заголовок(СокрЛП(ЕдиницаИзмерения.ОКЕИ.Наименование)+" в 1 "+СокрЛП(Базовая.ОКЕИ.Наименование)); Форма.печКоэффициент_4.Заголовок(СокрЛП(Базовая.ОКЕИ.Наименование)); Форма.печКоэффициент_3.Заголовок(СокрЛП(ЕдиницаИзмерения.ОКЕИ.Наименование)); Если (Фиксировать=1) и (Базовая=едВеса) Тогда Форма.Коэффициент_1.Видимость(0); Форма.Коэффициент_Ф.Видимость(1); Форма.Коэффициент_Ф.Доступность(1); иначе Форма.Коэффициент_Ф.Видимость(0); Форма.Коэффициент_1.Видимость(1); Форма.Коэффициент_1.Доступность(1); КонецЕсли; Форма.Фиксировать.Доступность(1); иначе Форма.Коэффициент_Ф.Видимость(0); Форма.Фиксировать.Видимость(0); Форма.ВарРасДЕ.Видимость(0); Форма.ВарРасДЕ_2.Видимость(0); Форма.ВарРасДЕ_3.Видимость(0); Форма.печРедакция_1.Видимость(0); Форма.печРедакция_2.Видимость(0); Форма.печРедакция_3.Видимость(0); Форма.Коэффициент.Доступность(0); Форма.Коэффициент_1.Доступность(0); Форма.печКоэффициент.Видимость(0); Форма.печКоэффициент_2.Видимость(0); Форма.печКоэффициент_4.Видимость(0); Форма.Коэффициент_4.Видимость(0); КонецЕсли; КонецЕсли; Если апТип=типПолуФабрикат Тогда Если (Форма.Закладки.ТекущаяСтрока()=1) и (Выбран()=1) Тогда Форма.кнКоличества.Видимость(1); иначе Форма.кнКоличества.Видимость(0); КонецЕсли; иначе Форма.кнКоличества.Видимость(0); КонецЕсли; Если Заказ=1 Тогда Если не(Константа.ПоказатьИд=12) тогда Форма.ЕдиницаИзмерения.Доступность(0); КонецЕсли; КонецЕсли; Если Форма.Закладки.ТекущаяСтрока()=2 Тогда Если Число(ФлагКВыполнению)=0 Тогда Форма.кнПодбора.Видимость(Выбран()); КонецЕсли; иначе Форма.кнПодбора.Видимость(0); КонецЕсли; КонецФункции Функция СуммаЗаказаОбщ() Если Заказ=1 Тогда Если Форма.Закладки.ТекущаяСтрока()=1 Тогда Если Число(ФлагКВыполнению)=0 Тогда Если (Фиксировать=1) и (Базовая=едВеса) Тогда Форма.КоличествоБазовое.Видимость(0); Форма.Коэффициент_1.Видимость(0); Форма.КоличествоБазовоеФ.Видимость(1); Форма.Коэффициент_Ф.Видимость(1); Форма.КоличествоБазовоеФ.Доступность(Базовая.Выбран()); иначе Форма.КоличествоБазовоеФ.Видимость(0); Форма.Коэффициент_Ф.Видимость(0); Форма.КоличествоБазовое.Видимость(1); Форма.Коэффициент_1.Видимость(1); Форма.КоличествоБазовое.Доступность(Базовая.Выбран()); КонецЕсли; Форма.Фиксировать.Доступность(Базовая.Выбран()); Форма.печДоп.Доступность(Базовая.Выбран()); иначе Если (Фиксировать=1) и (Базовая=едВеса) Тогда Форма.КоличествоБазовое.Видимость(0); Форма.Коэффициент_1.Видимость(0); Форма.КоличествоБазовоеФ.Видимость(1); Форма.Коэффициент_Ф.Видимость(1); Форма.КоличествоБазовоеФ.Доступность(0); иначе Форма.КоличествоБазовоеФ.Видимость(0); Форма.Коэффициент_Ф.Видимость(0); Форма.КоличествоБазовое.Видимость(1); Форма.Коэффициент_1.Видимость(1); Форма.КоличествоБазовое.Доступность(0); КонецЕсли; Форма.Фиксировать.Доступность(0); Форма.печДоп.Доступность(0); КонецЕсли; иначе Форма.КоличествоБазовое.Видимость(0); Форма.Коэффициент_1.Видимость(0); Форма.КоличествоБазовоеФ.Видимость(0); Форма.Коэффициент_Ф.Видимость(0); КонецЕсли; КонецЕсли; печВес=0; Если табКом.КоличествоСтрок()>0 тогда табКом.ВыбратьСтроки(); Пока табКом.ПолучитьСтроку()=1 Цикл Если табКом.Материал.ЕдиницаИзмерения=едВеса Тогда печВес=печВес+табКом.Количество; иначе Если табКом.Материал.Базовая=едВеса Тогда печВес=печВес+табКом.КоличествоБазовое; КонецЕсли; КонецЕсли; КонецЦикла; КонецЕсли; Если Число(печВес)>0 тогда Если Базовая=едВеса Тогда Форма.печИтог_1.Заголовок("вес 1 ед.: "+СокрЛП(ФорматКк(печВес))+" (кг)"); Если Количество>1 Тогда Форма.печИтог_2.Заголовок("вес "+СокрЛП(Количество)+" ед.: "+СокрЛП(ФорматКк(печВес*Количество))+" (кг)"); Иначе Форма.печИтог_2.Заголовок(""); КонецЕсли; иначеЕсли ЕдиницаИзмерения=едВеса Тогда Форма.печИтог_1.Заголовок("вес 1 ед.: "+СокрЛП(ФорматКк(печВес))+" (кг)"); Если КоличествоБазовое>1 Тогда Форма.печИтог_2.Заголовок("вес "+СокрЛП(КоличествоБазовое)+" ед.: "+СокрЛП(ФорматКк(печВес*КоличествоБазовое))+" (кг)"); Иначе Форма.печИтог_2.Заголовок(""); КонецЕсли; КонецЕсли; КонецЕсли; КонецФункции Функция СуммаЗаказа() Если табКом.КоличествоСтрок()>0 тогда печВес=0; табКом.ВыбратьСтроки(); Пока табКом.ПолучитьСтроку()=1 Цикл Если табКом.Материал.ЕдиницаИзмерения=едВеса Тогда печВес=печВес+табКом.Количество; иначе Если табКом.Материал.Базовая=едВеса Тогда печВес=печВес+табКом.КоличествоБазовое; КонецЕсли; КонецЕсли; КонецЦикла; Если Число(печВес)>0 тогда Возврат "общий вес: "+СокрЛП(ФорматКк(печВес))+" (кг), общая стоимость: "+СокрЛП(ФорматСс(табКом.Итог("Сумма")))+" (руб)"; иначе Возврат "общая стоимость: "+СокрЛП(ФорматСс(табКом.Итог("Сумма")))+" (руб)"; КонецЕсли; КонецЕсли; Возврат ""; КонецФункции Функция СуммаЗаказаВсп() Если табКомВсп.КоличествоСтрок()>0 тогда печВес=0; табКомВсп.ВыбратьСтроки(); Пока табКомВсп.ПолучитьСтроку()=1 Цикл Если табКомВсп.Материал.ЕдиницаИзмерения=едВеса Тогда печВес=печВес+табКомВсп.Количество; иначе Если табКомВсп.Материал.Базовая=едВеса Тогда печВес=печВес+табКомВсп.КоличествоБазовое; КонецЕсли; КонецЕсли; КонецЦикла; Если Число(печВес)>0 тогда Возврат "общий вес: "+СокрЛП(ФорматКк(печВес))+" (кг), общая стоимость: "+СокрЛП(ФорматСс(табКомВсп.Итог("Сумма")))+" (руб)"; иначе Возврат "общая стоимость: "+СокрЛП(ФорматСс(табКомВсп.Итог("Сумма")))+" (руб)"; КонецЕсли; КонецЕсли; Возврат ""; КонецФункции Функция СуммаЗаказаРаб() Если табКомРаб.КоличествоСтрок()>0 тогда Если (Ширина>0) и (Длина>0) Тогда Возврат "Площадь (см2): "+СокрЛП((Ширина*Длина)/100)+", общая стоимость: "+СокрЛП(ФорматСс(табКомРаб.Итог("Сумма")))+" (руб), стоимость для клиента: "+СокрЛП(ФорматСс(Окр(табКомРаб.Итог("Сумма")*Константа.КоэффициентНаФОТ.Получить(Д_ГраницаРасчетаОстатков),1))); иначе Возврат "общая стоимость: "+СокрЛП(ФорматСс(табКомРаб.Итог("Сумма")))+" (руб), стоимость для клиента: "+СокрЛП(ФорматСс(Окр(табКомРаб.Итог("Сумма")*Константа.КоэффициентНаФОТ.Получить(Д_ГраницаРасчетаОстатков),1))); КонецЕсли; иначе Если (Ширина>0) и (Длина>0) Тогда Возврат "Площадь (см2): "+СокрЛП((Ширина*Длина)/100); КонецЕсли; КонецЕсли; Возврат ""; КонецФункции Функция СтоимостьРасходных() Если (табКом.КоличествоСтрок()>0) Тогда Если СуммаЗаказа>0 Тогда Если не((табКом.Итог("Сумма")+табКомВсп.Итог("Сумма")+табКомРаб.Итог("Сумма"))=СуммаЗаказа) Тогда Если (СуммаЗаказа-(табКом.Итог("Сумма")+табКомВсп.Итог("Сумма")+табКомРаб.Итог("Сумма")))>0 Тогда Возврат "прочие затраты: "+СокрЛП(ФорматСс(СуммаЗаказа-(табКом.Итог("Сумма")+табКомВсп.Итог("Сумма")+табКомРаб.Итог("Сумма")))); иначе Возврат "разница: "+СокрЛП(ФорматСс(СуммаЗаказа-(табКом.Итог("Сумма")+табКомВсп.Итог("Сумма")+табКомРаб.Итог("Сумма")))); КонецЕсли; КонецЕсли; иначе Возврат "расч.стоимость: "+СокрЛП(ФорматСс((табКом.Итог("Сумма")+табКомВсп.Итог("Сумма")+табКомРаб.Итог("Сумма")))); КонецЕсли; КонецЕсли; КонецФункции Функция печЕдиницаК() печЕд=""; Если (табКом.КоличествоСтрок()>0) Тогда печЕд="осн.единица: "+СокрЛП(табКом.Материал.ЕдиницаИзмерения.ОКЕИ.Наименование); Если табКом.Материал.Базовая.Выбран()=1 Тогда печЕд=печЕд+" , доп.единица: "+СокрЛП(табКом.Материал.Базовая.ОКЕИ.Наименование); КонецЕсли; КонецЕсли; Возврат СокрЛП(печЕд); КонецФункции Функция печЕдиницаКВсп() печЕд=""; Если (табКомВсп.Количест |
|||
46
Ork
02.08.12
✎
10:10
|
(0) Ни в коем случае больше не лезь в рабочую базу.
Буду банелен : пригласи спеца. |
|||
47
Ork
02.08.12
✎
10:11
|
*банален
|
|||
48
tdutybq
02.08.12
✎
10:13
|
Спец и был очень удивлён этому коду
|
|||
49
Азат
02.08.12
✎
10:13
|
(0) айда помогу, пиши в аську, денге на киво)
|
|||
50
Злопчинский
02.08.12
✎
10:19
|
для тупых и еще не очень жадных пока одинэсников - есть универсальная обработка, которая безо всякого программирования перенумерует справочник товаров как надо.
|
|||
51
Junior1s
02.08.12
✎
10:20
|
Одному мне кажется что "Евгений" пьян ?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |