Имя: Пароль:
1C
 
Сбилась автоматическая нумерация накладных
0 Korben
 
23.12.07
17:49
Привет всем. Короче в нашей фирме произошла следующая канитель. Вернее, несколько проблем, которые мне нужно исправить. Был бы безумно благодарен, если бы кто-либо поделился опытом и помог мне их исправить.
Установлена - 1С 7.7. ОС - Win XP SP2
Итак.
1. Бухгалтер экспортировала базу, отправила в головной офис. Там тётка внесла нужные изменения и переслала обратно. База была импортирована и после этого сбилась автоматическая нумерация расходных накладных. Видимо, тётка не правильно ввела номер - до этого накладные нумеровались как ПК-00117, а она ввела ПК-0117, теперь при создании расходной накладной, всегда выскакивает этот ПК-0117 и бухгалтеру приходится вводить порядковый номер вручную. Отыскать неправильно пронумерованную накладную не смог - её в общем списке накладных нет. точно. Пытался использовать обработку docrenum.ert (Восстановление номеров документов) - результата не дало, всё равно ПК-0117. С uchoice.ert не смог совладать - так и не понял, как с её помощью восстановить нумерацию. Пробовал менять в конфигураторе количество символов в номере на 9, - не помогло. Не знаю куда копать ещё, помогите пожалуйста восстановить автоматическую нумерацию.
2. При создании счёт-фактуры, выбирается поставщик. У нас это - филиал ООО "Фирма". После этого, если нажать Печать, появляется предпросмотр печатаемого счёта-фактуры, в котором первая строчка - Поставщик, а потом есть строка того, кто отгружает. Так вот, мне нужно сделать так, чтобы в строке Поставщик был просто ООО "Фирма" (т.к.поставщик - москвоский офис), а в строке Отгружающего - филиал ООО "Фирма" (наша фирма). Проблема в том, что в Справочнике можно указать только одно название фирмы, и нельзя указать так, чтобы были разные Поставщик и Отгружающий. Бухгалтер, опять же, вводит слово Филиал вручную. Посоветуйте, пожалуйста, возможно вообще это сделать, или нет и как.
1 leshikkam
 
23.12.07
17:54
(1) по-хорошему вызвать программиста
Если не вариант, то
1) Указать какой тип нумерации стоит у данного документа, точнее в пределах чего (года, или всего журнала).
2) Найти документ с № ПК-0116 и поставить ПК-000116
3) Найти все документы с неправильной длинной:
Док = СоздатьОбъект("Документ.ТвойВид");
Док.ВыбратьДокументы();
Пока Док.ПолучитьДокумент()=1 Цикл
Если СтрДлина(СокрЛП(Док.НомерДок))<>8 Тогда
Сообщить(""+Док);
КонецЕсли;
КонецЦикла;
2 Korben
 
24.12.07
00:35
Нумерация стоит в пределах года.
А если ПК-0116 не обнаружится? По крайней мере визуально я его не нашёл?
Спасибо заранее
3 Korben
 
24.12.07
00:53
leshikkam, не пойми меня не правильно, но ... как использовать этот код, написанный тобой? как запустить этот цикл? В 1С ни разу не программировал, соответственно не особо силён в этом.
4 Korben
 
24.12.07
00:56
Как я понял - в Конфигураторе создать Обработку, вставить этот код во вкладке Модуль и...?
5 KRV
 
24.12.07
01:04
Специалиста пригласи!!! Специалиста!!! или учись... тебе уже все сказали - разжевывать не будут. Эксперименты на КОПИИ делай... а то сидеть потом долго не сможешь...
6 Korben
 
24.12.07
01:33
KRV, да я с радостью научусь, просто всё это необходимо сделать в самые ближайшие сроки, а специалиста вызвать - нужно ждать около недели. Поэтому и обращаюсь к людям, я ведь не прошу сделать всё за меня, просто прошу помочь...
7 Korben
 
24.12.07
01:39
1. Нашёл. Но он доступен только для просмотра, но не для изменения и на нём стоит пометка об удалении. При попытке снять пометку об удалении, говорит: Нельзя снимать удаление с документа в закрытом для редактирования периоде. Как быть!?
8 Дантес
 
24.12.07
01:40
Korben, ты извини конечно, но в твоем случае фразу "просто прошу помочь" можно перевести как "ребята сделайте за меня". И это не потому что ты ленивый и не хочешь делать сам, а потому что "В 1С ни разу не программировал, соответственно не особо силён в этом."

В связи с этим у тебя есть два варианта:

1. найти в инете обработку по исправлению нумерации в документах.

2. ждать специалиста

Третьего не дано, т.к. в воскресенье врядли найдется желающий что-то объяснять человеку который "В 1С ни разу не программировал"
9 Дантес
 
24.12.07
01:42
(7) молодец ... если не ошибаюсь то есть на этот случай константа "Дата запрета редактирования документов" ... поставь ее раньше чем дата документа и снимай пометку
10 Korben
 
24.12.07
01:49
(9) Дантес, спасибо большое! Исправил.
11 Дантес
 
24.12.07
01:53
(10) Пожалуйста.

ну все .... требуй повышения на работе ))))))))))
12 Korben
 
24.12.07
01:56
(10) Хорошо, и про тебя упомяну :)
А про второй пункт ты не в курсе? Ну, поля "Грузоотправитель и его адрес" и "Продавец"? Я б тогда вообще каждый день на твой ник молился!
13 KRV
 
24.12.07
02:07
(12) Сними в документе при выписке галку "Грузоотправитель он же" и будет тебе счастье.... кого угодно туда запишешь, хоть приемную Ватикана...
14 Korben
 
24.12.07
02:20
(13) Я впишу, но это будет однократно. А как сделать так, чтобы каждый раз, когда я захочу сделать Ватикан грузоотправителем, не нужно было вписывать всё это вручную? Автозаполнение. В процедуре ввода на Основании не пойдёт?
15 Дантес
 
24.12.07
02:28
(12) а вот это лишнее ... икота замучает :)

Ну если я тебя правильно понял то тебе надо править процедуру в документе:
Процедура ПодготовитьРеквизитыШапки(Рекв)

Она вроде и формирует значения реквизитов шапки

и про грузоотправителя там есть следующий текст

   Если ЕстьТовары() = 1 Тогда
       Рекв.ДобавитьЗначение("Грузоотправитель и его адрес: Он же", "Грузоотправитель");
       Рекв.ДобавитьЗначение(Шаблон("Грузополучатель и его адрес: [ЮрФизЛицо.ПолнНаименование], Адрес: [глПредставлениеАдреса(ЮрФизЛицо.ФактАдрес)]"), "Грузополучатель");
   Иначе
       Рекв.ДобавитьЗначение("Грузоотправитель и его адрес: -----", "Грузоотправитель");
       Рекв.ДобавитьЗначение("Грузополучатель и его адрес: -----", "Грузополучатель");
   КонецЕсли;  


Так вот тебе надо в строке Рекв.ДобавитьЗначение("Грузоотправитель и его адрес: Он же", "Грузоотправитель");

Заменить "Грузоотправитель и его адрес: Он же" на какой-то шаблон

Например:

Рекв.ДобавитьЗначение(Шаблон("Грузоотправитель и его адрес: [ЮрЛицоФирма.ПолнНаименование], "Грузоотправитель");

Это пример из 944 торговли ... самая новая что у меня есть :)

PS блин ... спустя полтора года открыл 7.7 ... ужос!
16 Korben
 
24.12.07
02:49
Блин, не могу найти в каком модуле находится эта процедура?
17 Дантес
 
24.12.07
02:51
(16) Документ "СчетФактураВыданый"
18 Korben
 
24.12.07
02:56
(15) Документы - Счет-Фактура - Форма
В Процедуре Печать, у меня есть вот что:
   //ПечГрузоотправитель="Грузоотправитель и его адрес: Он же"; //комм Jane 24.03.03
   ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]");                      
   //ПечГрузополучатель=Шаблон("Грузополучатель и его адрес: [Клиент.ПолноеНаименование], Адрес: [Клиент.ПочтовыйАдрес]"); // комм Jane 14.09.04
   ПечГрузополучатель=Шаблон("Грузополучатель и его адрес: [Клиент.ПолноеНаименование], Адрес: [Клиент.ПочтАдресКП]");     // доб Jane 14.09.04

Если я здесь заменю ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]");
на
ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [ЮрЛицоФирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]");

это сработает?
19 Korben
 
24.12.07
02:58
(17) В Документах есть только Счет и СчетФактура, а СчетФактураВыданный не имеется.
20 Дантес
 
24.12.07
03:03
(18) ты погоди заменять ... я тебе просто как пример привел тот текст ... из не самой свежей торговли ...

Я даже не знаю что у тебя за конфа ... может там и нет переменной "ЮрЛицоФирма"


По строке

ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]");

У тебя выводится полное наименование Фирмы и ее почтовый адрес.

Тебе нужно чтобы у тебя были разные поставщик и отгружающий ... ну так просто измени одну из строк кода где параметры шапки получаешь.


Т.е. у тебя есть два параметра ПОСТАВЩИК и ГРУЗООТПРАВИТЕЛЬ тебе нужно колдовать с ними ...

Например в поставщика забить просто наименование фирмы, а в грузоотправителя полное наименование ... вот формально и получиться что разные
21 Дантес
 
24.12.07
03:04
(19) ну блин ... определись уж с этим сам ... наверное если ты печатаешь СФ то и док тебе нужен СФ ...
22 Korben
 
24.12.07
03:05
(20) Окей, поколдую, о результатах колдовства сообщу.
Огромное спасибо ещё раз.
23 ado
 
24.12.07
05:10
(22) Только, прежде чем править код конфигурации, подумай, что тебе (а, недай бог еще и не тебе) её еще обновлять придется ...
24 Korben
 
24.12.07
07:52
Подскажите, а мне вот на другом форуме подсказали в Процедуре ввода на основании добавить код заполнения Грузоотправителя. А перед этим - Справочники - Контрагенты - Создаю новую группу ГРУЗООТПРАВИТЕЛИ - в ней новую Строку - филиал ООО "Фирма".
Такой способ пройдёт? Если да, то в каком месте вставлять?! Процедура ввода на основании маленько огромная... Я предположил, что в этом блоке:

ИначеЕсли ВидОсн="ОтчетРеализатора" Тогда
Если ДокОснование.Клиент.ВидКонтрагента=Перечисление.ВидыКонтрагентов.Организация Тогда
ОплатаБН=Да;
Иначе
ОплатаБН=Нет;
КонецЕсли;
ДокОснование.ВыбратьСтроки();
Пока ДокОснование.ПолучитьСтроку()=1 Цикл
НоваяСтрока();
Товар=ДокОснование.Товар;
СтавкаНДС=Товар.СтавкаНДС;
Цена=ДокОснование.Цена*ДокОснование.Курс;
Единица=ДокОснование.Единица;
Коэффициент=ДокОснование.Единица.Коэффициент;
Количество=ДокОснование.Количество;
НДС=ДокОснование.НДС*ДокОснование.Курс;
НГСМ=ДокОснование.НГСМ*ДокОснование.Курс;
Сумма=Цена*Количество*Единица.Коэффициент;
КонецЦикла;
25 Дантес
 
24.12.07
10:50
(24) если я прально понял, то в этом случае придется добавлять новый реквизит документа т.к. ИМХО нет в СФ реквизита Грузоотправитель.

А теперь представь, добавил ты реквизит, исправил печатную форму ... и все у тебя хорошо заполняется и печатается ... в новых документах, а в старых реквизит остался не заполненным ...

На мой взгляд проще только печатную форму подправить чем процедуру ввода на основании и печатную форму.
26 Korben
 
24.12.07
13:10
(25) Согласен.
ну, тогда последнее, что остаётся - составить условие. моё не работает че-то, исправь пожалуйста. Где-то с кавычками напутал, почти уверен.
В процедуре Печать, вместо

ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]");

Я сделал:

   Если Фирма.ПолноеНаименование="ООО "Фирма"" Тогда
   ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: филиал ООО ""Фирма"", Адрес: [Фирма.ПочтовыйАдрес]");
   Иначе    
   ПечГрузоотправитель=Шаблон("Грузоотправитель и его адрес: [Фирма.ПолноеНаименование], Адрес: [Фирма.ПочтовыйАдрес]");
   КонецЕсли;

Но оно не работает, сразу срабатывает условие Иначе.
27 Korben
 
24.12.07
13:11
Кстати в условии пробовал как (Фирма.ПолноеНаименование="ООО ""Фирма""")
так и (Фирма.ПолноеНаименование="ООО ""Фирма"")
Короче как только не пробовал, всё равно не работает.
28 Дантес
 
24.12.07
13:26
Вообще-то условие Фирма.ПолноеНаименование = "ООО ""Фирма""" должно работать

если у тебя действительно есть фирма с полным наименованием ООО "Фирма"
29 Дантес
 
24.12.07
13:28
Может пробел где есть


попробуй так

Если СокрЛП(НРег(Фирма.ПолноеНаименование)) = "ооо ""фирма""" Тогда
<выражение 1>
Иначе
<выражение 2>
КонецЕсли
30 Korben
 
24.12.07
13:43
Неа. не сработало.
Фирма с полным наименованием ООО "Фирма" есть 100%. Не хочет ни в какую.
31 Korben
 
24.12.07
14:41
Всё, сделал.
Сработало следующее условие:
   Если СокрЛП(Фирма.ПолноеНаименование)="ООО ""Фирма""" Тогда
   ПечГрузоотправитель="Грузоотправитель и его адрес: филиал ООО ""Фирма"", Адрес: "+ Фирма.ПочтовыйАдрес;
   Иначе
   ПечГрузоотправитель="Грузоотправитель и его адрес: "+ Фирма.ПолноеНаименование+" , Адрес: "+Фирма.ПочтовыйАдрес;
   КонецЕсли;
32 Дантес
 
24.12.07
14:44
Хочешь сказать что

Если СокрЛП(Фирма.ПолноеНаименование)="ООО ""Фирма""" Тогда  - СРАБОТАЛО

а

Если СокрЛП(НРег(Фирма.ПолноеНаименование)) = "ооо ""фирма""" Тогда - НЕ СРАБОТАЛО

?

Бред!!!
33 Korben
 
24.12.07
14:44
А, и последнее, подскажите, плз, в перечне документов (в моём случае, счет-фактуры), есть документ с неправильным номером, его можно удалить? Delete'ом ставится только пометка об удалении, но сам он не удаляется. Как его удалить к чертям собачьим?
34 Дантес
 
24.12.07
14:48
Операции - Удаление помеченных объектов
35 Korben
 
24.12.07
14:57
(32) Нет, скорее всего дело было в шаблонах, т.е. в самих выражениях, мне кажется. Честное слово, написал как есть. Просто перебрал все возможные варианты.
36 Korben
 
24.12.07
15:14
(34) А если этот документ не захотел удаляться - 1С сказал мне, что 56 из 200 документов удалить нельзя, и этот злополучный ПК-0116 - как раз в этих 56?
37 Korben
 
24.12.07
15:26
Всё. удалил. была ссылка на этот документ. Всё, огромное спасибо тебе, Дантес и всем остальным тоже. Выручил невероятно просто. Буду молиться за тебя! :)
Всё удалил, всё исправил.
Закон Брукера: Даже маленькая практика стоит большой теории.