Форум на Kuban.ru (http://forums.kuban.ru/)
-   Территория 1С (http://forums.kuban.ru/f1040/)
-   -   О сколько нам открытий чудных готовят дятлы 1С... (http://forums.kuban.ru/f1040/o_skol-ko_nam_otkrytij_chudnyh_gotovyat_dyatly_1s-2152637.html)

Sadovnikov 03.02.2012 08:25

О сколько нам открытий чудных готовят дятлы 1С...
 
Бояню, нет?

Если ((ПустоеЗначение(ДатаНомерСчетаФактуры) = 1) и (Выбран() = 1))
или (((ПустоеЗначение(ДатаСчетаФактуры) = 1) или (ПустоеЗначение(НомерСчетаФактуры) = 1)) и (Выбран() = 1)) Тогда
СчетФактураПредъявлен = 0;


У меня только один вопрос - ну сколько можно-то, а???

bma1 03.02.2012 09:07

Ну... еще вполне терпимо...
Если Выбран() * (ПустоеЗначение(ДатаНомерСчетаФактуры) + ПустоеЗначение(ДатаСчетаФактуры) + ПустоеЗначение(НомерСчетаФактуры)) > 0 Тогда
СчетФактураПредъявлен = 0;
Так понятнее? :)

Sadovnikov 03.02.2012 09:10

2-bma1 > Да тут даже не про тупость самого кода. И, кстати, твой вариант по логике работы не совпадает с тем, что написали тупни из 1С. Твой - правильный.
А вот хочется мне посмотреть на то, как 1С-кий дятел будет объяснять, как же пользователь должен заполнить документ, что бы эта галка все-таки выставилась при открытии.

Reaper 03.02.2012 09:13

Ну не знают таджики, что логические операции это тоже сложение и умножение. Не сажать же на поддержку клюшек адекватных специалистов - они все заняты написанием ТОС к УПП 2.0. Моя пятая точка ощущает, что это будет феерия превосходящая причину недовольства (0) на многие порядки...

101 03.02.2012 09:18

все логично , это код автоподстава ...

Маус 03.02.2012 09:20

а вот разве нельзя что-либо для людей сотворить: либо делают жалкую тупню, либо феерический прорыв/срыв башки экзальтированных консультеров;-)

Sadovnikov 03.02.2012 09:24

Народ...
Зачистите константу НачалоПримененияИсправленныхСчетовФактур и откройте любой из записанных документов, например, УслугиСтороннихОрганизаций, где стояла эта галка...

Sadovnikov 03.02.2012 09:25

Кстати, константу можно даже не зачищать. Просто, старый документ откройте.

Маус 03.02.2012 09:28

не продолжай... мне уже страшно!:-(((

zaic 03.02.2012 09:31

Это противоречивость и непонятность законодательных актов последнего времени так влияет на моск постановщиков и далее кодеров..)

Lexusss 03.02.2012 09:32

Кому нужна эта типовая 7.7? Кто сидит на самописках - им и обновления не нужны, и на другие платформы рыпаться не будет.
Кто сидел на типовых 7.7 - давно прыгнули на 8.2.
А картины потенциального покупателя нового внедрения на типовой 7.7 вообще не представляю.

Reaper 03.02.2012 09:33

(6) Видимо нельзя. Такое ощущение, что там две группировки - неисправимые дебилы и такие же неисправимые гении. Первые не делают ничего, кроме изменений законодательства и делают "на от...тесь", а вторые в своей мании величия клепают УТ 11 и иже с нею. Даже БП и ту запустили - Фогель поди 3ю редакцию вылизывает, текучку делают какие-то раздолбаи...

Sadovnikov 03.02.2012 09:33

11-Lexusss > "Кто сидел на типовых 7.7 - давно прыгнули на 8.2" - вот только фигню пороть не надо, а?

zaic 03.02.2012 09:37

13-Sadovnikov >Мы тоже не прыгнули. А что там с константой? это вообще-то здравое решение в рамках неопределенности. Даже странно, как они додумались.

Климов Сергей 03.02.2012 09:37

2(11) [em]Кто сидел на типовых 7.7 - давно прыгнули на 8.2.[/em]
К сожалению, нет. Лично вчера обновлял клиенту 7 баз базовой бух-ии. В каждой по по полторы проводки...

Reaper 03.02.2012 09:38

У меня на самом деле тоже зла не хватает. Файл конфигурации комплексной за год вырос со 100 до 170 мегабайт. Обновление нетиповых превратилось в пытку, накат очередного релиза занимает минимум 8 часов, на которые работы максимум час. Остальное время пофигуратор сравнивает конфигурации, сохраняет конфигурацию, реструктуризует БД, помещает изменения в гнобилище и формирует файлы поставки...

Sadovnikov 03.02.2012 09:40

14-zaic > С константой - это я протупил. В данном случае она не при чем.
Она будет "при чем", если, допустим, обновились 1-го февраля, а константу выставили в 24-е января. И открыли существующий документ за, допустим, 25-е января. Шок буху обеспечен.

aab 03.02.2012 10:03

1, это ещё что... Вот как вам там же:

ПечДатаПлатРасчДок = Формат(ДатаПлатРасчДок ,"Д (0)ДДММММГГГГ");

...

ПечДатаПлатРасчДок = ?(ДатаЧисло(ПечДатаПлатРасчДок)=0,ПустойПоказатель,ПечДатаПлатРасчДок);

Sadovnikov 03.02.2012 10:05

18-aab > Я, вот, думаю, может, они таким образом готовятся свою улицу переименовать? Тоже пернатый, но клюв повнушительнее...

Helen 1986 03.02.2012 11:00

обращение к дебилам и дятлам - песателям типовых

[img]
http://e-cheb.ru/files/S_853cff84034f0e3187bcd6c86b62cb4c.jpg[/img]

Helen 1986 03.02.2012 11:00

[img]http://e-cheb.ru/files/S_853cff84034f0e3187bcd6c86b62cb4c.jpg[/img]

SVAR 03.02.2012 14:08

11-Lexusss >[quote=Lexusss;23075963]Кто сидел на типовых 7.7 - давно прыгнули на 8.2[/quote] Ошибаешься. И проводок не мало, и переходить на 8.2 нихотят

Helen 1986 03.02.2012 14:35

(22) это мечты снеговиков-идиотов и столбиков

perpetum 03.02.2012 21:21

Уж да....., намутили, ну очень.... :-)
В принципе, чтобы всё работало, можно сделать так.
В модуле ПриОткрытии(), добавить вызов процедуры ПриПредъявленииСчетаФактуры(), остальное - всё, что касается СчетФактураПредъявлен - вычистить, чтобы не мешало...

Кроме того, чтобы видеть, что было до нововведения, можно на форму дока поставить маааленький флажок с командой Показать(), а сами модули Показать() и ПриПредъявленииСчетаФактуры(), прописать так:


Процедура Показать_()
Если Показать=1 Тогда
Форма.ДатаНомерСчетаФактуры.Видимость(1);
Форма.ДатаСчетаФактуры.Видимость(0);
Форма.НомерСчетаФактуры.Видимость(0);
Форма.ДатаНомерСчетаФактуры.Доступность(1);
Форма.ДатаСчетаФактуры.Доступность(0);
Форма.НомерСчетаФактуры.Доступность(0);
Иначе
Форма.ДатаНомерСчетаФактуры.Видимость(0);
Форма.ДатаНомерСчетаФактуры.Доступность(0);
Форма.ДатаСчетаФактуры.Видимость(1);
Форма.НомерСчетаФактуры.Видимость(1);
Форма.ДатаСчетаФактуры.Доступность(1);
Форма.НомерСчетаФактуры.Доступность(1);
КонецЕсли;
КонецПроцедуры

//
Процедура ПриПредъявленииСчетаФактуры()
Если Выбран()=1 Тогда
Если ((ПустаяСтрока(ДатаНомерСчетаФактуры)=1) и (ПустоеЗначение(ДатаСчетаФактуры)+ПустаяСтрока(НомерСчетаФактуры) > 0)) ИЛИ (КодВидаПоступления = 3) Тогда
СчетФактураПредъявлен = 0;
Если (ДатаДок<Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустаяСтрока(ДатаНомерСчетаФактуры)=0) Тогда //Старая форма
Форма.ДатаНомерСчетаФактуры.Видимость(1);
Форма.ДатаНомерСчетаФактуры.Доступность(1);
Форма.ДатаСчетаФактуры.Видимость(0);
Форма.ДатаСчетаФактуры.Доступность(0);
Форма.НомерСчетаФактуры.Видимость(0);
Форма.НомерСчетаФактуры.Доступность(0);
ИначеЕсли (ДатаДок>=Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустоеЗначение(ДатаСчетаФактуры)+ПустаяСтрока(НомерСчетаФактуры) = 0) Тогда //Новая форма
Форма.ДатаНомерСчетаФактуры.Видимость(0);
Форма.ДатаНомерСчетаФактуры.Доступность(0);
Форма.ДатаСчетаФактуры.Видимость(1);
Форма.ДатаСчетаФактуры.Доступность(1);
Форма.НомерСчетаФактуры.Видимость(1);
Форма.НомерСчетаФактуры.Доступность(1);
КонецЕсли;
ИначеЕсли (ДатаДок<Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустаяСтрока(ДатаНомерСчетаФактуры)=0) Тогда //Старая форма
СчетФактураПредъявлен = 1;
Форма.ДатаНомерСчетаФактуры.Видимость(1);
Форма.ДатаНомерСчетаФактуры.Доступность(1);
Форма.ДатаСчетаФактуры.Видимость(0);
Форма.ДатаСчетаФактуры.Доступность(0);
Форма.НомерСчетаФактуры.Видимость(0);
Форма.НомерСчетаФактуры.Доступность(0);
ИначеЕсли (ДатаДок>=Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустоеЗначение(ДатаСчетаФактуры)+ПустаяСтрока(НомерСчетаФактуры) = 0) Тогда //Новая форма
СчетФактураПредъявлен = 1;
Форма.ДатаНомерСчетаФактуры.Видимость(0);
Форма.ДатаНомерСчетаФактуры.Доступность(0);
Форма.ДатаСчетаФактуры.Видимость(1);
Форма.ДатаСчетаФактуры.Доступность(1);
Форма.НомерСчетаФактуры.Видимость(1);
Форма.НомерСчетаФактуры.Доступность(1);
КонецЕсли;
Иначе
СчетФактураПредъявлен = 0;
Если (ДатаДок<Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустаяСтрока(ДатаНомерСчетаФактуры)=0) Тогда //Старая форма
Форма.ДатаНомерСчетаФактуры.Видимость(1);
Форма.ДатаНомерСчетаФактуры.Доступность(1);
Форма.ДатаСчетаФактуры.Видимость(0);
Форма.ДатаСчетаФактуры.Доступность(0);
Форма.НомерСчетаФактуры.Видимость(0);
Форма.НомерСчетаФактуры.Доступность(0);
ИначеЕсли (ДатаДок>=Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустоеЗначение(ДатаСчетаФактуры)+ПустаяСтрока(НомерСчетаФактуры) = 0) Тогда //Новая форма
Форма.ДатаНомерСчетаФактуры.Видимость(0);
Форма.ДатаНомерСчетаФактуры.Доступность(0);
Форма.ДатаСчетаФактуры.Видимость(1);
Форма.ДатаСчетаФактуры.Доступность(1);
Форма.НомерСчетаФактуры.Видимость(1);
Форма.НомерСчетаФактуры.Доступность(1);
КонецЕсли;
КонецЕсли;
//
// ещё что-то
//
КонецПроцедуры

.......................
И тогда всё работает! - всегда можно подсмотреть, что было, ничего не удаляется, а новые и старые формы живут себе в параллель....

perpetum 03.02.2012 21:26

- это был пример из дока ПоступлениеТоваров, потому прилепилось дополниетльное условие - КодВидаПоступления... :-)

perpetum 03.02.2012 21:46

24-perpetum >+
Да, ещё.... -
В режиме Показать_() - можно производить в любом из показываемых окон, исправления..., если в этом есть необходимость... - ведь не очень удобно для исправлений бегать в константы и откатывать дату начала применения новой счета-фактуры туда-сюда....

DeiMos 04.02.2012 01:57

КГ/АМ

Читать (и писать) вниматочно сюдыть: [url]http://forums.kuban.ru/showthread.php?t=2011166&highlight=%D0%B8%D0%B4%D0%B8%D0%BE%D1%82%D0%B8%D0%B7%D0%BC[/url]

DeiMos 04.02.2012 02:00

(0): "Бояню, нет?"
Увы, это баян, камрад...
[img]http://proplay.ru/images/users/gallery/24842/162508_m.jpg[/img]

Пацталоцци 04.02.2012 04:25

[b]да, 535 релиз готовили откровенно небрежно[/b]

[img]http://s017.radikal.ru/i424/1202/f2/2484fede8025.jpg[/img]

Sadovnikov 04.02.2012 06:43

24-perpetum > Извини, конечно, но не надо учиться программировать на примерах туповых...
Зачем эти пары?
Форма.ДатаСчетаФактуры.Видимость(0);
Форма.ДатаСчетаФактуры.Доступность(0);

Зачем вообще эти километры кода, когда реквизиты лежат на разных слоях?

Sadovnikov 04.02.2012 06:44

На днях мне рассказали про "товарищча", который озвучивает стоимость работ в "2 рубля за букву".
Интересно, почему я про это сейчас вспомнил? :)

reanimator 04.02.2012 15:50

На днях разбирал (правда в восьмёрке) код товарища из очень крупного местного франча, который у клиента до меня был, тоже порадовался:

Если НайденнаяСтрока.Количество > Разница и Разница <> 0 И Разница > 0 Тогда
....
ИначеЕсли Разница <> 0 И Разница > 0 И НайденнаяСтрока.Количество <> 0 Тогда

reanimator 04.02.2012 15:52

ещё там же

НоваяТаблицаТоваров = Новый ТаблицаЗначений;
НоваяТаблицаТоваров = Товары.ВыгрузитьКолонки();

Для Каждого Строка Из Товары Цикл
НоваяТаблицаТоваров.Добавить();
КонецЦикла;

Для Каждого Колонка Из НоваяТаблицаТоваров.Колонки Цикл
Если Колонка.Имя <> "КлючСтроки" И Колонка.Имя <> "НомерСтроки" Тогда
НоваяТаблицаТоваров.ЗагрузитьКолонку(Товары.ВыгрузитьКолонку(Колонка.Имя), Колонка.Имя);
КонецЕсли;
КонецЦикла;

DeiMos 04.02.2012 15:54

32-reanimator > Нормальный код. Ничего не трогай. Это редкостный вариант, когда франчи - НЕ позор 1С.

DeiMos 04.02.2012 15:56

33-reanimator > Ой да ладно тебе придираться...

В типовой Бухгалтерии уж 10 лет как написано вот так в модуле документа "Амортизация ОС":

Начать цикл по всем элементам справочнега ОС

- Создать Объект "Бухгалтерские Итоги типа"

- Чё-то там расчитать в итогах

- Конец Цикла по справочнику ОС.

DeiMos 04.02.2012 15:59

И вообще - для темы сабжа - для тех, кто в танке - своевременно была создана соответствующая ветка:

[url]http://forums.kuban.ru/showthread.ph...B8%D0%B7%D0%BC[/url]

Sadovnikov 04.02.2012 16:10

36-DeiMos > Нда... Пьяный DeiMos - существенно хуже пьяного Гены...

Reaper 04.02.2012 16:40

Угу, Геннадий Яныч обычно одну ветку выбирает для вывода всех на чистую воду, а вот DeiMos как американец - ковровыми бонбардировками балуецца.

reanimator 04.02.2012 17:16

34-DeiMos > Не, это неправильный код... там же проверка только на 0, но нет проверки на -1, -2, -3...

perpetum 04.02.2012 17:19

30-Sadovnikov >
Спасибо :-) - да я удивился, когда увидел такое, но лень обуяла - скопипастил кусок исходного код от 1С и не удалил лишнее...
...
Собственно, работает :-) - а убрав лишнее, получается компактнее так:
/////
Процедура Показать_()
Если Показать=1 Тогда
Форма.ДатаНомерСчетаФактуры.Видимость(1);
Форма.ДатаСчетаФактуры.Видимость(0);
Форма.НомерСчетаФактуры.Видимость(0);
Иначе
Форма.ДатаНомерСчетаФактуры.Видимость(0);
Форма.ДатаСчетаФактуры.Видимость(1);
Форма.НомерСчетаФактуры.Видимость(1);
КонецЕсли;
КонецПроцедуры

/////

Процедура ПриПредъявленииСчетаФактуры()
Если Выбран()=1 Тогда
Если ((ПустаяСтрока(ДатаНомерСчетаФактуры)=1) и (ПустоеЗначение(ДатаСчетаФактуры)+ПустаяСтрока(НомерСчетаФактуры) > 0)) Тогда
СчетФактураПредъявлен = 0;
Если (ДатаДок<Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустаяСтрока(ДатаНомерСчетаФактуры)=0) Тогда //Старая форма
Показать=1;//Показать Старую Форму
Показать_();
ИначеЕсли (ДатаДок>=Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустоеЗначение(ДатаСчетаФактуры)+ПустаяСтрока(НомерСчетаФактуры) = 0) Тогда //Новая форма
Показать=0;//Показать Новую Форму
Показать_();
КонецЕсли;
ИначеЕсли (ДатаДок<Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустаяСтрока(ДатаНомерСчетаФактуры)=0) Тогда //Старая форма
СчетФактураПредъявлен = 1;
Показать=1;//Показать Старую Форму
Показать_();
ИначеЕсли (ДатаДок>=Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустоеЗначение(ДатаСчетаФактуры)+ПустаяСтрока(НомерСчетаФактуры) = 0) Тогда //Новая форма
СчетФактураПредъявлен = 1;
Показать=0;//Показать Новую Форму
Показать_();
КонецЕсли;
Иначе
СчетФактураПредъявлен = 0;
Если (ДатаДок<Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустаяСтрока(ДатаНомерСчетаФактуры)=0) Тогда //Старая форма
Показать=1;//Показать Старую Форму
Показать_();
ИначеЕсли (ДатаДок>=Константа.НачалоПримененияИсправленныхСчетовФактур) и (ПустоеЗначение(ДатаСчетаФактуры)+ПустаяСтрока(НомерСчетаФактуры) = 0) Тогда //Новая форма
Показать=0;//Показать Новую Форму
Показать_();
КонецЕсли;
КонецЕсли;
/////
...
Может есть и другие варианты, у себя оставил так.
:-)


Текущее время: 19:20. Часовой пояс GMT +3.