Порой возникает необходимость создать новую базу 1С с нуля. На что в первую очередь обращают внимание - на настройки учетной политики, настройки налогов, а вот про складской учет часто забывают.
А далее текстовое описание, кому лень смотреть)
Также код обработки по исправлению ситуации.
И сама обработка за 1 SM, если лень делать)
В чем суть проблемы. Вот так выглядит настройка по складам в новой демо базе:
Здесь все "красиво", включены максимальные возможности по учету. Включен и партионный учет и учет по складам (и по количеству, и по сумме).
А вот что будет, если создать новую чистую базу, в которой мы начинаем вести учет, а будет следующее:
Как мы видим, учет по складам вообще снят. То есть программа не будет требовать указать склад и в приходных документах и отгрузке, реквизит склад даже не будет виден в документах. Допустим, нас эта ситуация не устраивает изначально. У нас в организации несколько складов, соответственно мы находим эту настройку и ставим галочку. В будущем проблем у нас уже не будет.
Но если мы в организации не ведем учет по складам, мы даже не обратим внимание на данную ситуацию и будем вести учет без складов. Казалось бы, все хорошо, наоборот, не нужно вводить лишнюю информацию, нет путаницы со списанием. Но в один "прекрасный" момент нам понабился еще один склад, разные могут быть ситуации, например, подключили кассу и под нее нужен розничный склад, или получили госзаказ с бюджетным финансированием, и также понадобился раздельный учет по складам.
Мы решили, что нет проблем, и сейчас мы зайдем и включим учет по складам. И тут нас ждет сюрприз.
Учет программа включить даст и даст добавить новый склад в добавок к уже имеющемуся. Дело в том, что даже когда учет по складам выключен, справочник "склады" не пуст, в нем есть "Основной склад". А вот дальше поведение программы неочевидное. Казалось бы, раз в справочнике склады есть "Основной склад" и логично, что при включении складского учета, имеющиеся остатки должны на нем как раз и оказаться. Однако этого не происходит и все наши остатки материалов, товаров и т.д. оказываются висеть сами по себе, не относясь ни к какому складу. И теперь мы не можем ни списать их на затраты, ни продать, вообще ничего не можем с ними сделать, так как программа требует при любой операции указать склад, а пустой склад мы указать не можем.
В этой ситуации дают разные советы:
https://buhexpert8.ru/voprosy/voprosy-1s-buhgalteriya/perehod-na-uchet-po-skladam.html - вот здесь предлагают до включения настройки списать всю номенклатуру, затем после включения заново оприходовать, и провести корректировку по девяностым счетам.
Кроме того, есть разные обработки по переносу с пустого склада на нужный, видел даже обработку по замене пустого склада на нужный во всех предыдущих документах "без перепроведения". Но решил сделать свою, которая в предыдущих документах ничего менять не будет, а просто перенесет остатки с пустого склада на нужный, на определенную дату. Тут, конечно, нужно иметь в виду, что есть бухгалтеры, которые "патологически" боятся лишних оборотов между счетами, почему-то это их пугает, а тут как раз обороты будут. Так, что если ваш бухгалтер из таких, предупредите. Тут им или придется преодолеть свой страх, или воспользоваться вот этой обработкой: //infostart.ru/public/1100790/. Я не стал ей пользоваться уже по причине своего страха, может, кстати, не обоснованного)) Мало ли, что она там наделает в старых документах, а мне потом отвечать. Если вдруг обработка безопасная, я прошу прощения у автора). В общем, мой бухгалтер оказался из "адекватных", которого обороты лишние по 10 - м счетам не испугали, а главное корректный остаток.
&НаСервере
Процедура СформироватьНаСервере()
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ХозрасчетныйОстатки.Счет КАК Счет,
| ХозрасчетныйОстатки.Субконто1 КАК Субконто1,
| ХозрасчетныйОстатки.Субконто2 КАК Субконто2,
| ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
| ХозрасчетныйОстатки.Организация КАК Организация,
| ХозрасчетныйОстатки.СуммаОстатокДт КАК СуммаОстатокДт,
| ХозрасчетныйОстатки.КоличествоОстатокДт КАК КоличествоОстатокДт,
| ХозрасчетныйОстатки.СуммаНУОстатокДт КАК СуммаНУОстатокДт
|ИЗ
| РегистрБухгалтерии.Хозрасчетный.Остатки(&ДатаОстатков, Счет = &Счет, , ) КАК ХозрасчетныйОстатки
|ГДЕ
| ХозрасчетныйОстатки.Организация = &Организация
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("ДатаОстатков", Объект.Дата);
Запрос.УстановитьПараметр("Счет", Объект.Счет);
Запрос.УстановитьПараметр("Организация", Объект.Организация);
РезультатЗапроса = Запрос.Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Корректировка = Документы.ОперацияБух.СоздатьДокумент();
Корректировка.Дата = Объект.Дата;
Корректировка.Организация = Объект.Организация;
Корректировка.Комментарий = "Корректировка";
Корректировка.Записать();
Регистр = РегистрыБухгалтерии.Хозрасчетный.СоздатьНаборЗаписей();
Регистр.Отбор.Регистратор.Значение = Корректировка.Ссылка;
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
НоваяЗапись = Регистр.Добавить();
НоваяЗапись.Регистратор = Корректировка.Ссылка;
НоваяЗапись.Период = Объект.Дата;
НоваяЗапись.Организация = Объект.Организация;
НоваяЗапись.СчетДт = Объект.Счет;
БухгалтерскийУчет.УстановитьСубконто(НоваяЗапись.СчетДт, НоваяЗапись.СубконтоДт, "Номенклатура", ВыборкаДетальныеЗаписи.Субконто1);
БухгалтерскийУчет.УстановитьСубконто(НоваяЗапись.СчетДт, НоваяЗапись.СубконтоДт, "Партии", ВыборкаДетальныеЗаписи.Субконто2);
БухгалтерскийУчет.УстановитьСубконто(НоваяЗапись.СчетДт, НоваяЗапись.СубконтоДт, "Склады", Объект.Склад);
НоваяЗапись.СчетКт = Объект.Счет;
БухгалтерскийУчет.УстановитьСубконто(НоваяЗапись.СчетКт, НоваяЗапись.СубконтоКт, "Номенклатура", ВыборкаДетальныеЗаписи.Субконто1);
БухгалтерскийУчет.УстановитьСубконто(НоваяЗапись.СчетКт, НоваяЗапись.СубконтоКт, "Партии", ВыборкаДетальныеЗаписи.Субконто2);
НоваяЗапись.Сумма = ВыборкаДетальныеЗаписи.СуммаОстатокДт;
НоваяЗапись.КоличествоДт = ВыборкаДетальныеЗаписи.КоличествоОстатокДт;
НоваяЗапись.КоличествоКт = ВыборкаДетальныеЗаписи.КоличествоОстатокДт;
НоваяЗапись.СуммаНУКт = ВыборкаДетальныеЗаписи.СуммаНУОстатокДт;
НоваяЗапись.СуммаНУДт = ВыборкаДетальныеЗаписи.СуммаНУОстатокДт;
НоваяЗапись.Активность = Истина;
КонецЦикла;
Регистр.Записать();
КонецПроцедуры
&НаКлиенте
Процедура Сформировать(Команда)
СформироватьНаСервере();
КонецПроцедуры
Если совсем лень делать самим, можете скачать чуть ниже у меня или поискать какую-нибудь другую, ту я не первопроходец) Выбираете организацию, и счет учета. Также указываете дату переноса и склад, на который нужно перенести. Обработка делает документ "Операция, введенная вручную". Будут проводки в дебет указанного склада с кредита пустого.