Имя: Пароль:
1C
1C 7.7
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
Одному мне кажется что "Евгений" пьян ?